因为新版本的gradle编译开源库的方法已经变了,所以这边记录下
1.第一步创建一个空项目
2.因为这样会创建出来一个app项目,我们上传git是不需要这个的,所以我们在
项目中setting.gradle目录下注释掉 app模块,然后就可以手动删除掉这个app模块了。
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "JitpackTest"
//include ':app' //注释掉module app
include ':mylibrary'
删除之后如下所示没有了app模块:
3.在mylibrary的build.gradle文件中添加 Maven Publish插件
Maven Publish官网的使用地址:
使用 Maven Publish 插件 | Android 开发者 | Android Developers
plugins {
id 'com.android.library'
id 'maven-publish' //添加maven publish插件
}
然后添加插件编译的Task:
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
from components.release
groupId = 'com.example.mylibrary' //groupId 随便取,jitpack不会使用
artifactId = 'test' //test随便取,jitpack不会使用
version = '1.0.1' //随便取,jitpack不会使用
}
}
}
}
完整的buidle.gradle代码如下所示:
plugins {
id 'com.android.library'
id 'maven-publish'
}
android {
compileSdk 32
defaultConfig {
minSdk 21
targetSdk 32
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
}
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
from components.release
groupId = 'com.example.mylibrary' //groupId 随便取
artifactId = 'test' //test随便取
version = '1.0.1'
}
}
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
4.本地编译:因为我们得用gradlew编译,所以得切换到这个路径
在控制台输入如下命令:
./gradlew publishToMavenLocal (./ 当前路径下的...)
会显示如下图所以,说明本地 编译成功了
5.把项目上传到git仓库或者码云
切换到项目目录下输入:
git init
如果本地已经存在 .git文件,说明你已经git初始化了
有些人的电脑可能会存在看不到这个文件,那是因为你文件管理中设置了 “隐藏项目”,打开即可:
把 “隐藏的项目” 勾上即可
接下来关联git上的项目:
git remote add origin (git 仓库的地址)
将本地的项目推送到git端
git push -u origin master
关于线上创建仓库,这里提醒一点:最好不要勾选下面标记的,不然会默认给你创建一个main分支,这样会和本地默认的master分支冲突
5. git线上打一个Release包:点击Releases
点击Draft a new release
选择打包Release是基于那个tag的
然后点击 Publise Release就可以
6.前往 jitpack 上编译
JitPack | Publish JVM and Android libraries
将项目的地址:
copy到如下地址,点击Look up就编译了
这个时候会显示编译失败:
点击红色的log日志查看报错内容:
意思是gradle插件需要java 11版本:
解决如上问题:
在mylibrary的build.gradle文件中添加如下:
compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 }
然后在整个项目的根目录下创建:jitpack.yml 文件,里面配置 java11,添加如下内容:
before_install:
- sdk install java 11.0.10-open
- sdk use java 11.0.10-open
jdk:
- openjdk11
6.再 提交到git 发布一个release版本
7.然后在jitpack上重新编译下:发现log日志编程绿色了,说明编译成功了,点击Get it
会教我们如何去使用:
到此就结束了本地库上传到jitpack仓库了。
使用:
上图是基于老版本的Gradle使用的,新版本如下添加jitpack地址:
然后再使用的地方依赖就可以了:
implementation 'com.github.awoyixiasiquanjia:mylibrary:1.0.1'
查看是否依赖上:如下图所示即成功依赖上了
我把项目贴出来,有需要的朋友可以对比下:
GitHub - awoyixiasiquanjia/mylibrary