首先描述一下jar、aar、上传到jitpack进行远程依赖的区别
jar:JAR包主要用于Java应用程序,包含编译后的class文件和清单文件,但不包含Android资源文件。
aar:AAR文件是Android库项目的二进制归档文件,包含class文件和所有的资源文件,项目中使用的其他三方依赖不会打包进aar。
上传到jitpack:从你的git仓库拉取代码在线编译,会将module中所有用到的代码编译进去
一、创建项目、创建module
上图中app是项目的主module,androidutilscenter是创建的用于发布到jitpack的module,在子module中随便创建一个工具类文件用于测试
二、将项目提交到gitee或者github
文中以gitee为例
三、配置子module
红框区域是新增内容,第一个红框是添加publish的插件支持,alias的写法是方便进行统一管理,也可以使用下面那一行的写法。alias的写法是最新版的android studio创建项目后的新写法,创建项目时会创建libs.versions.toml文件,alias指向的是下图的红框内容。
//这三个属性是自己定义的
group="com.xxx.xxx"
version="1.0.01"
artifactId = "xxxxx"
android中sourceCompatibility、targetCompatibility我使用的是java 17,主要是因为我的gradle是8.0以上,根据自己项目的gradle版本来决定,如果两者没有对应后面发布到gitpack失败时错误日志也会提醒。
至此所有配置已完成。
为了避免我们不断的在线编译错误,我们可以在根目录下执行指令来检测:
./gradlew install
如果显示BUILD SUCCESSFUL,那就恭喜你成功了。上传代码吧。
四、上传代码到gitee/github
代码上传成功后,创建tag标签
五、打开jitpack网站,发布
jitpack地址:https://jitpack.io/
jitpack目前支持gitee,可以登录gitee账号
登录账号、输入自己项目的git地址,点击look up,jitpack会自动搜索最新创建的tag,并进行发布,需要耐心等待一段时间,发布结束后绿色表示发布成功,红色表示失败
发布成功后点击get it,会告诉你如何使用
到此已经jitpack已经发布成功。
常见问题:
1、在Android项目中引用时提示:'Gradle sync failed. Received status code 401 from server: Unauthorized'
原因:由于你的项目是私有项目,所以别人在引用时无法获取授权,两种解决方式:
方式a、将项目改为公共项目,别人也可以访问(gitee上设置)
方式b、在项目的跟build文件上配置自己jitpack的Access Token,
2、An exception occurred applying plugin request [id: 'com.android.library', version: '8.5.1'],
原因:版本不匹配,将java 11 改为 java 17