Android Studio 新版本Gradle通过JitPack发布Maven仓库示例
发布本地仓库示例:https://blog.csdn.net/loutengyuan/article/details/145938967
以下是基于 Android Studio 24.2.2(Gradle 8.10.2 + AGP 8.8.0 + JDK17) 的通过JitPack发布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) 设置JDK17变量
在项目的根目录添加 jitpack.yml
文件,内容如下:
jdk:
- openjdk17
由于这里配置了jdk17变量,所以如果在gradle.properties有设置jdk的本地路径,JitPack编译的时候会找不到这个路径,所以这里必须关闭这个设置,本地编译必须将电脑的环境变量设置为JDK17。
// 关闭项目根目录 gradle.properties 中JDK17配置
# org.gradle.java.home=C\:\\Program Files\\Java\\jdk-17
(3) aar模块 build.gradle
// aar模块 build.gradle
plugins {
alias(libs.plugins.android.library)
id 'maven-publish'
}
android {
namespace 'com.lois.aarlib'
compileSdk 35
defaultConfig {
minSdk 21
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
// 以下是本地构建配置,用于发布到maven仓库,显式声明发布配置(关键修复)
publishing {
singleVariant("release") {
// 显式声明发布配置
withSourcesJar()
// doc发布需要添加"org.jetbrains.dokka:dokka-gradle-plugin:1.9.10"插件
withJavadocJar()
}
}
}
dependencies {
implementation libs.appcompat
implementation libs.material
testImplementation libs.junit
androidTestImplementation libs.ext.junit
androidTestImplementation libs.espresso.core
}
publishing {
publications {
release(MavenPublication) {
// 注:这里设置的groupId和artifactId和version等,在JitPack编译的时候不会用到,会被替换成 `com.github.User:Repo:Tag` 这样的样式
groupId = 'com.lois.maven.test'
artifactId = 'AarLib'
version = '1.0'
afterEvaluate {
from components.release
}
}
}
}
(4) jar模块 build.gradle
// jar模块 build.gradle
plugins {
id 'java-library'
id 'maven-publish'
}
java {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
publishing {
publications {
release(MavenPublication) {
// 注:这里设置的groupId和artifactId和version等,在JitPack编译的时候不会用到,会被替换成 `com.github.User:Repo:Tag` 这样的样式
groupId = 'com.lois.maven.test'
artifactId = 'JarLib'
version = '1.3'
afterEvaluate {
from components.java
}
}
}
}
2. 发布代码到github仓库
将工程代码提交到github仓库
然后创建一个Releases版本:
3. 编译发布仓库到JitPack平台
使用github的账号登录JitPack:https://jitpack.io/平台,然后输入代码仓库地址,点击Look Up后会自动编译。
编译发布成功后图标是绿色的,编译报错是红色的。
发布成功后就可以根据指示添加仓库使用了:
4. 在其他项目中引用本地仓库
在需要引用该库的项目中,配置 build.gradle
文件:
(1) 添加本地仓库路径
在 setting.gradle 上添加仓库地址
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven { url 'https://jitpack.io' }
google()
mavenCentral()
}
}
(2) 添加依赖
dependencies {
implementation 'com.github.luotengyuan.MavenJitpackTest:AarLib:1.3'
implementation 'com.github.luotengyuan.MavenJitpackTest:JarLib:1.3'
}
示例代码:https://github.com/luotengyuan/MavenJitpackTest