发布jar和aar到github
对,你没看错!jar和aar也可以发布到github上。
而且依赖库可以写成这样子maven { url 'https://dwvip.github.io/repo' }
,如果你有自己的域名,还可以更酷。
最近项目中需要对外提供sdk,但是项目的module太多,而且android中一个module是不能把另一个aar打进去的,
开始想过fat-aar的方案,最后还是放弃了。一是作者已经不维护了,二是因为aar太多了,在合并过程中你不知道会遇到什么奇怪的问题。
所以,最终确定把我们的sdk发布到maven仓库上供外部使用。第一步,发布到github上。于是就有了这篇文章。
aar打包参考了https://www.jianshu.com/p/6c1d2688ed2d/
生成jar到本地maven仓库
- module的build.gradle
1 | apply plugin: 'java-library' |
- maven-release-jar.gradle
1 | apply plugin: "maven-publish" |
- 执行
./gradlew publish
在demoLib的同级目录dwvipRepo下生成jar及pom等文件
生成aar到本地maven仓库
- module的build.gradle
1 | apply plugin: 'com.android.library' |
- 如果有flavor需要指定默认flavor(怎么通过脚本指定?)
1 | android { |
- maven-release-aar.gradle
1 | apply plugin: 'maven' |
- 执行
gradle uploadArchives
在demoLib的同级目录dwvipRepo下生成aar及pom等文件 - project 的build.gradle
1 | allprojects { |
- 使用刚刚生成的jar、aar
1 | implementation 'com.dwvip.demolib:droidLib:1.0' |
上传至github
将dwvipRepo下整个文件夹上传至Github(注意,要上传的是完整的路径)。我的仓库地址是https://github.com/dwvip/repo/ 。然后maven地址就可以用github的线上地址了:
maven { url 'https://github.com/dwvip/repo/raw/master' }
怎么用user.github.io这样的地址?
GitHub Pages大家都知道,只要把https://github.com/dwvip/repo/ 设置成GitHub Pages就可以了。然后仓库地址可以改成这样:
maven { url 'https://dwvip.github.io/repo' }
并且访问https://dwvip.github.io/repo/ 可以看到repo的首页,是不是很专业的样子?
没有demo说代码都是耍流氓
以上代码及操作步骤都在这个demo里。https://github.com/andych008/demoLib/
- javaLib是生成jar的示例
- droidLib是生成aar的示例
- app引用原始的module
1
2implementation project(':droidLib')
implementation project(':javaLib') - app2引用javaLib和droidLib生成的jar及aar
1
2implementation 'com.dwvip.demolib:droidLib:1.0'
implementation 'com.dwvip.demolib:javaLib:0.2.0'