以前只是用过别人托管在Jitpack上的库,自己的库都是托管在MavenCentral上,但是MavenCentral使用起来,相比Jitpack还是有些麻烦。经过简单尝试和学习,了解了Jitpack的使用,做一下简单记录。

我第一个托管在Jitpack上的库——J2V8Helper

Step 1: 在library module中使用maven-publish插件

在库目录下的build.gradle文件中,应用maven-publish插件,修改后的build.gradle文件入下:

1
2
3
4
5
6
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
id 'maven-publish'
}
// Other code

然后检查此插件是否引入成功,在AndroidStudio的右侧,Gradle面板中,library module下查看有无publishing的任务组。

如果找不到,有可能是AndroidStudio配置的问题,在AndroidStudio的设置中,进入Experimental选项卡中,找到Gradle分组,找到Only include test tasks in the Gradle task list generated during Gradle Sync,如果勾选了,请不要勾选此选项。

在library module下的build.gradle结尾,添加如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
afterEvaluate {
publishing {
publications {
// Creates a Maven publication called "release".
release(MavenPublication) {
// Applies the component for the release build variant.
from components.release

// You can then customize attributes of the publication as shown below.
groupId = 'com.github.xyz'
artifactId = 'abc'
version = '0.0.1'
}
// Creates a Maven publication called “debug”.
debug(MavenPublication) {
// Applies the component for the debug build variant.
from components.debug

groupId = 'com.github.xyz'
artifactId = 'abc'
version = '0.0.1'
}
}
}
}

需要注意的是,此配置,在Jitpack的编译中,并不会生效,Jitpack中你的库的引用,永远都是com.github.{你github用户名}:{此项目在gitHub上repository的名字}:{创建release的tag名字}。此处配置,只为检查你的maven-publish是否生效。

然后执行Gradle任务中的publishReleasePublicationToMavenLocal,待执行完毕,查看$HOME/.m2/responsitory路径下,有无你的库存在。如果成功,请执行下一步骤。

Step 2: 将代码push到github并新建release

在你Github对于的repository下,新建一个tag和release。

Step 3: 在jitpack.io搜索你的库,并执行打包

打开https://jitpack.io/

点击Get it,然后等待编译结束,如果编译失败,会有日志记录,可以查看对应的日志来处理。

需要注意的是,Jitpack默认的java版本为java8,如果你的Gradle版本比较高的话,比如我项目的Gradle版本为7.4.0,需要修改java版本,在项目的根目录下,创建一个jitpack.yml文件,增加配置脚本如下:

1
2
jdk:
- openjdk11

Gradle版本7.4.0对应最低编译版本为java11,则我修改为openjdk11。

参考文章

Publish an Android Library

[使用 Maven Publish 插件](使用 Maven Publish 插件  |  Android 开发者  |  Android Developers)

Maven Publish Plugin

Android发布AAR至JitPack.io

[Guide to publishing libraries](Building - JitPack.io)

本文采用CC-BY-SA-3.0协议,转载请注明出处
Author: boybeak