Gradle 发布共享库——如何通过Gradle发布java依赖
作为一个码农,我们开发了很多项目,也积累了很多自己的通用依赖库,这些都是我们的项目积累,那么我们该如将自己的依赖库方便的集成到以后的项目开发中,或者共享给比人使用呢?
是直接在后面的项目中通过依赖模块的方式, 还是直接将项目库打包成jar包,亦或者直接将代码copy到项目中,很显然这些方式都不够方便,也不够优雅。当然我们有更好的方案,那就是将代码发布到远程的中央仓库,对于中央仓库有很多有Jitpack、JCenter等。这里我们推荐一种最简单的发布方法:
通过github发布到Jitpack的方法,具体步骤如下:
分三步走:工程集成代码——>Github发布——>JitPack编译
一、代码集成:在项目工程(AndroidStudio创建的项目)中集成如下代码:
1. 项目根build.gradle中添加android-maven-gradle插件地方
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
}
}

**2. 在项目的根目录下添加 publishJavaLib.gradle文件, 内容如下 **
apply plugin: "maven"
// 指定编码
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
//指定生成的javadoc文档编码格式,防止javadoc中文乱码
tasks.withType(Javadoc) {
options{
encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/8/docs/api"
}
}
group = 'com.github.itxiaox'
version '1.0.4'
sourceCompatibility = 1.8 // java 8
targetCompatibility = 1.8
repositories {
mavenCentral()
}
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives sourcesJar
archives javadocJar
}

3. 在需要发布的module中添加引用:
apply from:"../publishJavaLib.gradle"

注意:这里的工程是通过AndroidStudio建立的,采用的是Gradle脚本发布
第二步: github上面发布release版本
先将代码上传到GitHub 然后点击Tag——>Releases——>Draft a new Release 填写信息完成发布。




3、用GitHub账号登录JitPack(https://jitpack.io/),如下图


如何使用:


至此已经成功发布完成,那么该如何使用呢,在上面的页面其实已经有How to use的描述了,如下所示


更完善一点,将描述写到github对应项目的README中,如下所示


通过本文的描述的发布仓库还会生成相应的javadoc文档,文档访问地址:
https://javadoc.jitpack.io/com/github/<github账户名>/<仓库名>/<模块名>/<版本号>/javadoc/index.html


至此将自己的java libary库发布到jitpack上供他人使用的详细步骤介绍完毕,本文描述的所有步骤都是经过多次测试使用,拿来即用,希望能够帮助到您,如有不当之处还请指正,谢谢。
GitHub代码: utils
下一篇: Gradle 发布共享库——如何通过Gradle发布Android依赖库(aar)到 jitpack 公共仓库