折腾了一下午,终于实现了在高版本的 Gradle 下发布依赖库到 Jitpack 了,梳理一下流程,方便大家查阅。
将 AAR 包发布到 Jitpack
- 首先创建壳工程 EUtils,将具体业务 EthanUtils 以 Android Lib 的形式引入
- 壳工程中记得添加对 EthanUtils 的依赖
- 在 EthanUtils 的 build.gradle 中添加以下内容
plugins {
id 'com.android.library'
id 'maven-publish'
}
android {
...
}
afterEvaluate {
publishing {
// 当前依赖库的版本号,方便我们开发者自己查看,同时发布到 MavenLocal 也是用的这个版本号(Jitpack不会使用到)
def versionName = "1.0.2"
publications {
release(MavenPublication) {
from components.release // 表示发布 release(Jitpack不会使用到)
// 自定义属性
groupId = 'com.ethan.EthanUtils' // 依赖库的 Group Id(Jitpack不会使用到)
artifactId = 'EthanUtils' // 依赖库的名称,单组件发布时随意填写,多组件时即为此组件的 ArtifactId(Jitpack不会使用到)
version = versionName
}
}
}
}
dependencies {
...
}
- 为保证高版本 Gradle 在编译时对 Java 版本的要求,在主工程下创建 jitpack.yml 文件,内容如下
- 在主工程的 settings.gradle 中添加 Jitpack 仓库的依赖
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven {
url "https://jitpack.io"
allowInsecureProtocol = true // 如果 url 为 http 协议,需要添加此项;https 可不用
}
google()
mavenCentral()
}
}
...
- 代码上传至 Github,并创建 release 版本。tag 就是版本号,title 是对外展示的名称
- 进入 Jitpack 发布平台JitPack | Publish JVM and Android libraries,粘贴 Github 项目链接
- 点击 Get it,等待云端编译,Log 为绿色代表编译成功
- 成功后其他项目便可以引用你上传的 AAR 了
dependencies {
implementation 'com.github.Star1128:EUtils:Tag'
}
- 保险起见,你可以在正式发布前进入终端,输入 gradle publishToMavenLocal 进行本地调试。其他项目在其主工程的 settings.gradle 中添加
mavenLocal()
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
...
mavenLocal() // 低 Gradle 版本是在 build.gradle 中添加
}
}
随后在依赖中使用你先前指定的信息,就可以进行调试了
dependencies {
implementation 'com.ethan.EthanUtils:EthanUtils:1.0.2'
}