前言
最近由于换工作的原因,以及自己手上一个小程序APP外包,已经有将近三个月没有更新自己文章了,中间也有幸和很多技术公司的技术面试官有过技术交流。后面也会抽出时间对于面试中遇到的问题作出整理。
这里的以前尝试过通过maven或jcenter发布自己的某些工具包,但是需要大量的gradle配置和账号申请权限,最近新公司里与同事交流。他们建议我尝试下使用github+jitpack的方式来做依赖包管理。尝试后效果相当不错,记录下来。
配置方法
在网上讲解Github和jitpack结合使用的案例非常多,在参考后也自己动手做了demo。首先,前置条件是你需要有github账号。可以在https://github.com/申请。然后本地配置git环境,这里具体详情请百度或查阅git官网。然后就是Android Studio下。配置好对应的环境,配置流程如下:
setting-->verison control--->git,界面如下
![2326194-398c55cd928ffdf6.png](https://i-blog.csdnimg.cn/blog_migrate/807ad52a065f693bbec8cb18ba873a40.webp?x-image-process=image/format,png)
然后在github上登陆之前注册的账号信息
![2326194-d224860dc5426d2f.png](https://i-blog.csdnimg.cn/blog_migrate/646131d6563b4659e44a7b8e56640dfa.webp?x-image-process=image/format,png)
完成绑定后新建一个项目/module,然后在对用的app/module下build.gradle下做如下配置
![2326194-2e57c7005e66cb2b.png](https://i-blog.csdnimg.cn/blog_migrate/f553150b37d89992c15d6e4d0bcfe73c.webp?x-image-process=image/format,png)
当然这个在更高级的组件化开发中会存在更高级的配置方法(可以让每个组件作为一个单独的App开发,并且最终更换为library提供给其他应用依赖)
然后将整个项目分享到github下
![2326194-a8afabb082785871.png](https://i-blog.csdnimg.cn/blog_migrate/0a113bd4ff3cfce52b76f365fec85526.webp?x-image-process=image/format,png)
最终在github上可以查阅到项目已经分享成功
![2326194-a5745acee9cdb162.png](https://i-blog.csdnimg.cn/blog_migrate/93a39f76025fed75176c6391d942f4ce.webp?x-image-process=image/format,png)
ps:注意一定是整个项目都要分享进去,不仅仅是app/module。然后在release下新建一个发布分支,确认发布:
![2326194-4bc1b39816ffe16c.png](https://i-blog.csdnimg.cn/blog_migrate/5ba172d4b5e8b2f861f85a2d9ad8188f.webp?x-image-process=image/format,png)
发布成功后会有如下信息
![2326194-6740234488aa560f.png](https://i-blog.csdnimg.cn/blog_migrate/92ef1f7b6ac40d0c6ac37f513bee2004.webp?x-image-process=image/format,png)
然后拷贝项目地址,记住是项目地址,比如我的项项目地址为:https://github.com/jixiang52002/MyRetrofit
.然后打开jitpack的网址:https://jitpack.io/
在搜索栏输入刚才复制的项目地址
![2326194-a207735694834dc6.png](https://i-blog.csdnimg.cn/blog_migrate/419802e65f917c521f1df7d0e3edd179.webp?x-image-process=image/format,png)
get对应最新的realse版本,
![2326194-63aeb178fbafcb37.png](https://i-blog.csdnimg.cn/blog_migrate/2c7f207d946e535f564b2fc8bfedf4a0.webp?x-image-process=image/format,png)
在其他项目中项目的buld.gradle和app的build.gradle中添加以下配置,配置如下
![2326194-bdc184871ba5c276.png](https://i-blog.csdnimg.cn/blog_migrate/5ffab49cb16d1db65d735d18a613e1a8.webp?x-image-process=image/format,png)
![2326194-a7f489fc087b7235.png](https://i-blog.csdnimg.cn/blog_migrate/b6eb57d7cc0fc31e85b6ab718c931b53.webp?x-image-process=image/format,png)
![2326194-f0eaebc5e8d043ee.png](https://i-blog.csdnimg.cn/blog_migrate/7ffbbf5b94e5751f7ae4ef6b30d889ed.webp?x-image-process=image/format,png)
到这里,单module的依赖包发布方式已经成功,但是如果是N个module包同时发布到jitpack下该如何解决?
多module模式
在多module模式下需要注意的是,编译后产生的aar包和porn包会有N个,在导入到项目中需要指定对应的module。如下:
![2326194-69b3842fd3db0abb.png](https://i-blog.csdnimg.cn/blog_migrate/bfc9a7d8fe21496fecd6bcaa830b4b64.webp?x-image-process=image/format,png)
![2326194-723b4c03758b584c.png](https://i-blog.csdnimg.cn/blog_migrate/d6dfbafbd17e7addc45af4b28758a616.webp?x-image-process=image/format,png)
希望能有帮助