闷声大发财!JitPack一键发布代码库

0.中央代码库

中央代码库是个啥?谁说对了代码都给他!
中央代码库就是 build.gradle 里

1
compile 'com.android.support:appcompat-v7:23.1.0'

去寻找下载代码的地方。较新版本 Android studio 中默认使用

1
2
3
repositories {
jcenter()
}

也就是Bintray Jcenter中央代码库。

1. 万恶的Jcenter

鄙人以前,一直用Jcenter作为repository。最近,库的owner变成了
你问我资词不资词? 我说不资词。无法提交新版本,尝试提交Ownership request依然不行。

2. JitPack介绍

趁此机会,尝试一下最近很火的JitPack,果然如一些人所说,Jcenter Maven这些代码库操作起来给人一种上世纪的感觉。Jitpack有多简单?首次进行简单配置,以后每次需要发布新版本只需要打个tag, push到GitHub上,然后在Jitpack 上Loop up。根本不需要如Jcenter填写繁复的配置,还得publish,审核等等。

3. 发布纯Java jar到JitPack

3.1 首先准备好自己要发布的Java模块

这里要注意,JitPack据称是使用JDK1.8编译,给人一种已经钦定了的感觉。但是我怎么提交都只看到Java7,所以还是尽量使用Java7的语法以及标准库。
然后在该模块的 gradle.build 内,添加这些内容

1
2
3
4
5
6
7
8
9
10
11
12
apply plugin: 'maven'

group = 'com.github.bluzwong'
task sourceJar(type: Jar) {
from sourceSets.main.allSource
classifier = 'sources'
}

task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}

上面这些可以直接复制去。当然啦,你们的决定权也是很重要的!
group要按照基本法,按照发布的法,去产生。

group = ‘改成你自己的group’

3.2 在命令行

1
gradlew install

BUILD SUCCESSFUL

3.3 本地就OK了

现在 Commit 这个版本,并打上 Tag
COMMIT AND TAG

将这笔要发布的 Tag Push 到GitHub上。
在GitHub上看到这样就可以了
PUSH DONE

3.4 发布

打开 JitPack 填上代码库地址。
jitpack0
点击 Look up JitPack便会找到有Tag的提交,并且进行编译。待风火轮停下。
jitpack1

Status 上的 Get it 变成绿色就是好啦。如果不是绿色,就是编译失败,点 Log 图标看看问题在哪。

至此,发布Java jar全部完成。可以在项目中按如下方式依赖。
jitpack2

4. 发布aar到JitPack

4.1 aar

jar包中无法包含 android lib 的资源,故出现一种打包方式 aar。所以包含有 android sdk 内容的要打包成 aar

4.2 修改build.gradle

在项目的 build.gradle 中增加

1
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'

看起来是这样的

1
2
3
4
5
6
7
8
9
10
11
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-beta5'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

在需要发布的 android lib 模块的 build.gradle 中增加

1
2
apply plugin: 'com.github.dcendents.android-maven'
group = 'com.github.bluzwong'

看起来是这样的

1
2
3
4
5
6
7
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
group = 'com.github.bluzwong'

android {
...
}

当然 group还是要改成你自己的

4.3 在命令行敲

1
gradlew install

BUILD 无误后,git commit && tag && push。

4.4 发布

回到 JitPack 点击 Loop up 会对这次的Tag编译。
jitpack3

4.5 使用

这次由于项目中有两个模块(还有上一部的Java jar),所以依赖方式略有区别
jitpack4
点击 Subproject 可以切换成另一个模块的依赖

5. 总结

以后需要提交代码库新版本时
flow


示例

很惭愧,只做了一些微小的工作。

蟹蟹大家!