Android Studio 新版本Gradle发布本地Maven仓库示例

发布代码到JitPack示例:https://blog.csdn.net/loutengyuan/article/details/145938967

以下是基于 Android Studio 24.2.2(Gradle 8.10.2 + AGP 8.8.0 + JDK17) 的本地 Maven 仓库发布示例,包含aar和jar的不同配置:


1. 配置 build.gradle 文件

(1) 项目级 build.gradle
// 项目根目录 build.gradle
buildscript {repositories {maven { url 'https://maven.aliyun.com/repository/public' }google()mavenCentral()}dependencies {classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.9.10" // 如果要编译javadoc,需要添加这个依赖}
}
(2) 项目级 gradle.properties(非必须)
// 项目根目录 gradle.properties 中添加JDK17配置(也可以设置电脑的环境变量未JDK17)
org.gradle.java.home=C\:\\Program Files\\Java\\jdk-17
(3) aar模块 build.gradle
// aar模块 build.gradle
plugins {alias(libs.plugins.android.library)alias(libs.plugins.maven.publish)
}android {namespace 'com.lois.aarlib'compileSdk 35defaultConfig {minSdk 21testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"consumerProguardFiles "consumer-rules.pro"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {sourceCompatibility JavaVersion.VERSION_17targetCompatibility JavaVersion.VERSION_17}// 以下是本地构建配置,用于发布到maven仓库,显式声明发布配置(关键修复)publishing {singleVariant("release") {// 显式声明发布配置withSourcesJar()// doc发布需要添加"org.jetbrains.dokka:dokka-gradle-plugin:1.9.10"插件withJavadocJar()}}
}dependencies {implementation libs.appcompatimplementation libs.materialtestImplementation libs.junitandroidTestImplementation libs.ext.junitandroidTestImplementation libs.espresso.core}// 发布配置
afterEvaluate {try {publishing {publications {release(MavenPublication) { // 定义发布名称(如 release 或 debug)from components.release  // Android库使用release变体groupId = "com.github.luotengyuan.MavenTest" // 组 IDartifactId = "AarLib" // 项目名称version = "1.0.0" // 版本号}}repositories {maven {url = uri("${rootProject.projectDir}/repository") // 动态路径配置}}}} catch (Exception e) {println "发布配置失败: ${e.message}" // 添加错误处理}
}
(4) jar模块 build.gradle
// jar模块 build.gradle
plugins {id 'java-library'alias(libs.plugins.maven.publish)
}java {sourceCompatibility JavaVersion.VERSION_17targetCompatibility JavaVersion.VERSION_17
}// 发布配置
afterEvaluate {try {publishing {publications {release(MavenPublication) { // 定义发布名称(如 release 或 debug)from components.java  // Java库使用groupId = "com.github.luotengyuan.MavenTest" // 组 IDartifactId = "JarLib" // 项目名称version = "1.0.0" // 版本号artifact sourcesJar // 添加源码发布配置artifact docJar // 添加源码发布配置}}repositories {maven {url = uri("${rootProject.projectDir}/repository") // 动态路径配置}}}} catch (Exception e) {println "发布配置失败: ${e.message}" // 添加错误处理}
}tasks.register('sourcesJar', Jar) {from sourceSets.main.allJavaarchiveClassifier = 'sources'
}tasks.register('docJar', Jar) {dependsOn javadoc // 确保先执行javadoc任务from javadoc.destinationDir // 使用javadoc生成的文档目录archiveClassifier = 'javadoc' // 修改分类器标识
}

2. 发布到本地 Maven 仓库

在终端中执行以下命令,将 AAR 文件发布到本地仓库:

./gradlew clean  
./gradlew publish
发布后的文件结构

发布后再项目根目录多了一个 repository 文件夹,这就是本地仓库地址,结构如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 在其他项目中引用本地仓库

在需要引用该库的项目中,配置 build.gradle 文件:

(1) 添加本地仓库路径

在 setting.gradle 上添加仓库地址

dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {maven {url "file://E:/AS24WorkSpace/MavenLocalTest/repository"}google()mavenCentral()}
}
(2) 添加依赖
dependencies {implementation 'com.github.luotengyuan.MavenTest:AarLib:1.0.0'implementation 'com.github.luotengyuan.MavenTest:JarLib:1.0.0'
}

示例代码:https://github.com/luotengyuan/MavenLocalTest

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27576.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[今年毕业设计]最新最全最有创意的基于云计算的计算机专业毕设选题精选推荐汇总建议收藏!!

文章目录 前言基于云计算的毕业设计选题毕设作品展示 前言 2025全新毕业设计项目 💗博主介绍:✌全网粉丝10W,CSDN全栈领域优质创作者,博客之星、掘金/华为云/阿里云等平台优质作者。 👇🏻 精彩专栏 推荐订阅&#x1f4…

coze生成的工作流,发布后,利用cmd命令行执行。可以定时发日报,周报等。让他总结你飞书里面的表格。都可以

coze生成的工作流,发布后,利用cmd命令行执行。可以定时发日报,周报等。让他总结你飞书里面的表格。都可以。 很简单。 准备工作,先发布你的工作流,和发布应用。 然后,点击扣子API 。 申请一个&#xff0…

安防监控/视频集中存储EasyCVR视频汇聚平台如何配置AI智能分析平台的接入?

EasyCVR安防视频监控平台不仅支持AI边缘计算智能硬件设备的接入,还能快速集成AI智能分析平台,接收来自智能分析平台或设备的AI告警信息,如烟火检测、周界入侵检测、危险区域闯入检测、安全帽/反光衣佩戴检测等。 本文将详细介绍如何在EasyCVR…

以1.7K深圳小区房价为例,浙大GIS实验室使用注意力机制挖掘地理情景特征,提升空间非平稳回归精度

地理加权回归 (Geographically Weighted Regression, GWR) 是一种广泛应用于地理空间分析的统计方法,用于捕捉地理现象的空间非平稳性(即空间异质性)。传统 GWR 通过为每个观测点分配权重来反映其对回归参数的影响,这些权重通常基…

【JavaEE】线程安全

【JavaEE】线程安全 一、引出线程安全二、引发线程安全的原因三、解决线程安全问题3.1 synchronized关键字(解决修改操作不是原子的)3.1.1 synchronized的特性3.1.1 synchronized的使用事例 3.2 volatile 关键字(解决内存可见性) …

智慧农业中光谱相机对土壤成分的无损检测应用‌

可浏览之前发布的一篇文章:光谱相机在农业中的具体应用案例 一、土壤成分定量分析 ‌养分检测‌ 光谱相机通过捕捉土壤反射的特定波长光线,可精准检测氮、磷、钾等主要养分含量,以及有机质和水分比例。例如,不同养分对近红外波段…

实现浏览器交互Ai Web Ui-本地化部署的deepseek + Ollama + Page Assist

一、deepseek本地化部署 上篇写了deepseek本地化部署的小白教程。 deepseek 本地化部署(小白也可部署) 但有个问题,Ollama只能在命令行进行交互,体验相当差。 二、Page Assist安装 本篇给大家介绍个好用的chrome浏览器AI Web …

使用Maven搭建Spring Boot框架

文章目录 前言1.环境准备2.创建SpringBoot项目3.配置Maven3.1 pom.xml文件3.2 添加其他依赖 4. 编写代码4.1 启动类4.2 控制器4.3 配置文件 5.运行项目6.打包与部署6.1 打包6.2 运行JAR文件 7.总结 前言 Spring Boot 是一个用于快速构建 Spring 应用程序的框架,它简…

易语言模拟真人鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

10.【线性代数】—— 四个基本子空间

十、 四个基本子空间 1. 列空间 C ( A ) C(A) C(A) in R m R^m Rm2. 零空间 N ( A ) N(A) N(A) in R n R^n Rn3. 行空间 C ( A T ) C(A^T) C(AT) in R n R^n Rn4. 左零空间 N ( A T ) N(A^T) N(AT) in R m R^m Rm综述5. 新的向量空间 讨论矩阵 A m ∗ n A_{m*n} Am∗n​…

使用通义万相Wan2.1进行视频生成

使用通义万相Wan2.1进行视频生成 源代码准备运行环境准备创建Python虚拟环境并激活安装依赖包 模型下载生成视频官网的视频生成例子简单描述场景视频生成示例详细描述场景视频生成示例 最近通义万相开源了其视频生成模型。模型有两个版本,一个是1.3B的,一…

P8651 [蓝桥杯 2017 省 B] 日期问题--注意日期问题中2月的天数 / if是否应该连用

P8651 [P8651 [蓝桥杯 2017 省 B] 日期问题--注意日期问题中2月的天数 / if是否应该连用 题目 分析代码 题目 分析 代码中巧妙的用到3重循环,完美的解决了输出的顺序问题【题目要求从小到大】 需要注意的是2月的值,在不同的年份中应该更新2月的值 还有…

smolagents学习笔记系列(番外二)Agent+Ollama分析本地图像与文件

这篇文章是在 smolagents 官方教程结束后的番外篇二,实现了如何使用 smolagents 库 Ollama 调用本地模型对图像与文件进行分析。 【注意】:这篇文章需要你在本地部署Ollama的视觉语言模型,如果你的架构方案是纯线上模式,则可以跳…

Java 入门 (超级详细)

一、什么是Java Java是一种高级编程语言,由Sun Microsystems公司于1995年推出。Java具有跨平台性、面向对象、健壮性、安全性、可移植性等特点,被广泛应用于企业级应用开发、移动应用开发、大数据处理、云计算等领域。Java程序可以在不同的操作系统上运…

02_NLP文本预处理之文本张量表示法

文本张量表示法 概念 将文本使用张量进行表示,一般将词汇表示为向量,称为词向量,再由各个词向量按顺序组成矩阵形成文本表示 例如: ["人生", "该", "如何", "起头"]># 每个词对应矩阵中的一个向量 [[1.32, 4,32, 0,32, 5.2],[3…

【实战 ES】实战 Elasticsearch:快速上手与深度实践-1.4.2内存与磁盘配置陷阱

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 Elasticsearch内存与磁盘配置深度避坑指南1. 内存管理核心原理1.1 内存分配矩阵1.2 内存压力预警线 2. 堆内存配置陷阱解析2.1 错误配置案例2.2 正确配置公式2.3 堆内存与分…

每日一题-奶酪题(蓝桥杯)【模拟】

题目要求 题目思路 假设有一个立方体奶酪,N2 1✖1✖N的奶酪块有3种(x方向,y方向,z方向) 如果x方向上想放 1✖1✖N的奶酪块,需要x方向上的有连续n个奶酪块被切走。同理,y方向和z方向也一样 …

git详细使用教程

文章目录 一、 git介绍与安装1、git介绍2、git的安装3、git使用前的说明 二、git的基础使用1、走进git之前2、git基础使用1、git init 项目初始化(init)成仓库(repository)2、git add 管理文件3、git commit 把文件提交到仓库&…

iOS接入Flutter项目

首先要把iOS项目和flutter项目统一目录下,而且需要注意的是flutter是module。 第一步:Flutter相关内容的创建 module创建命令: flutter create --templatemodule my_flutter,之后再执行 flutter pub get flutter build ios …

SEKI —— 基于大型语言模型的自进化与知识启发式神经架构搜索

01、项目概述 我们引入了一种基于新型大型语言模型( LLM )的神经架构搜索( NAS )方法,名为 SEKI 。SEKI 受到现代 LLM 中思维链( CoT )范式的启发,分为两个关键阶段运行&#xff1a…