记录一次发布jitpack

  我超tmd,这个gradle 8.x有问题,我使用的gradle版本是8.0gradle插件版本是8.0.2,使用./gradlew publishToMavenLocal命令根本就生成不了aar文件,只有一个pom文件,jitpack也只生成了如下的一些文件,但是没有aar

1
2
3
4
5
6
7
Files: 
com/github/xxinPro/FileSelector/v1.0
com/github/xxinPro/FileSelector/v1.0/FileSelector-v1.0-sources.jar
com/github/xxinPro/FileSelector/v1.0/FileSelector-v1.0.pom
com/github/xxinPro/FileSelector/v1.0/FileSelector-v1.0.pom.md5
com/github/xxinPro/FileSelector/v1.0/FileSelector-v1.0.pom.sha1
com/github/xxinPro/FileSelector/v1.0/build.log

  jitpack官方也迟迟未更新gradle 8.x的文档,所以后面我把gradle版本换成了7.6gradle插件版本换成了7.4.2

打包arr

  最一开始,我无法使用./gradlew assembleRelease命令打包releaseaar,只能打包debug版,并且在右侧gradle操作栏中也没有assembleRelease的选项,如下

  关掉设置中的这个选项之后恢复正常

  关掉之后点sync同步一下

  双击模块中的assembleRelease,生成一个releaseaar

本地调试

  在模块gradle文件中引入maven-publish插件

1
2
3
4
plugins {
...
id 'maven-publish'
}

  指明在本地maven库中的插件的引入方式,指明后通过groupId:artifactId:version的方式在其他模块引用
  在from components.release这里,grafle 8.x根本就没办法调用这个release,只能通过from components.findName('release')

1
2
3
4
5
6
7
8
9
10
11
12
13
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
from components.release

groupId = 'com.github.xxinPro' // 用户名
artifactId = 'FileSelector' // 仓库名
version = '1.0' // 版本
}
}
}
}

  需要注意的是,引用本地maven库中的插件之前,得先添加本地maven库的支持

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
pluginManagement {
repositories {
mavenLocal() // 本地maven仓库
google()
mavenCentral()
gradlePluginPortal()
maven { url 'https://jitpack.io' }
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenLocal() // 本地maven仓库
google()
mavenCentral()
maven { url 'https://jitpack.io' }
}
}

  在以上的配置输入完毕之后,点sync同步一下,然后打开gradle侧边栏可以看到多了publishing选项,打开该选项并双击publishToMavenLocal,会生成aar文件并提交至本地maven仓库,默认的路径是C:\Users\.m2\repository\目录

  然后可以在其他模块中引用,如果在本地引用没问题,一般情况下发布到jitpack后也没什么问题

1
implementation 'com.github.xxinPro:FileSelector:1.0'

发布gitpack

  通过项目根目录的jitpack.yml文件,可以指定jitpack构建项目使用的jdk版本,如下指定jitpack使用jdk 11

1
2
jdk:
- openjdk11

  将项目上传到githubgitee等仓库,如何上传不再赘述,上传成功之后创建一个release
  打开jitpack,输入github用户名/仓库名,查找刚刚上传的仓库

  点击Get it,将开始构建该仓库,等待构建完毕之后查看jitpack提供的Log,若Log中无错误,则说明发布成功,再次点击Get it即可获取引入方式

参考:
https://blog.csdn.net/H_O_W_E/article/details/125208062
https://blog.csdn.net/cmmboy1990/article/details/124382540