最近把github上的代码都转移到了码云上,而且github上的仓库可以很方便的迁移到码云,所以老代码的迁移问题不用考虑。
之前使用 JCenter 发布了一个 GitHub 开源项目,JCenter整个流程很繁琐,相对于JCenter,JitPack发布非常的简单,所以最近几个项目都是发布到了 JitPack上。
由于技术原因,码云项目之前是不支持发布到JitPack的,具体是啥时候支持的笔者也知道,就是前几天打开JitPack,首页上就有提示:"We now support Gitee.com 码云"提示,笔者试着根据以前在Github上发布的流程,试了一遍,非常方便就发布了自己的项目。提示:目前AndroidStudio不支持插件maven自动化打包项目了,我们文章最后2022-3-10号更新了AndroidStudio自带的maven自动化打包方式,其他方式与文章介绍基本不变!
以前在Eclipse时代要复用代码,需要把项目生成jar包放到开发项目的libs目录下或者把项目文件直接拷贝到Eclipse项目中然后引用项目,这样做不仅会导致jar包和项目难以管理,而且一旦涉及到依赖包升级的情况,就需要重新拷贝一次项目,使开发更加费时而且容易出错,所以就有JitPack和JCenter这类的网站出来,项目发布到他们平台后,我们只需要这样就能引用到项目:
引用的项目升级,我们只需要修改后面的版本号即可。是不是非常的方便?
Easy to use package repository for Git
Publish your JVM and Android libraries
JitPack 是一个类似于 JCenter 和 MavenCentral 的仓库,流程简单,可以非常快捷的发布Github和Gitee开源项目,方便使用 Gradle 进行依赖管理。
下面介绍下怎么发布Gitee上的项目:
1.在码云上生成私人令牌
为什么要生成私人令牌呢?因为JitPack需要获取码云的授权才能获取码云上的项目。
进入码云主页,点击右上角登录信息在菜单下选择设置选项:
在左侧的菜单中选择私人令牌选项:
点击右上角生成新令牌按钮:
设置私人令牌并创建,这里的私人令牌是一个字符串,请好好保管,关闭界面后令牌不会再显示,请妥善保管,请妥善保管,请妥善保管,重要的事前说三遍:
生成完成后的私人令牌:
2. 在JitPack上设置私人令牌
先用你的Github账号登录JitPack:
登录后选择Settings菜单选项:
设置私人令牌:
私人令牌设置成功后便可使用码云的开源项目了!
在 Gitee上创建项目:
创建完成后会打开项目,因为当前项目是空白的,所以会显示以下的页面:
Gitee空白项目
在Android项目上创建一个module。
选择Android Library
填写Android Library相关信息
完成后项目里面就会多了一个module,我这里用之前创建好的一个module举例
module中需要设置这几个地方:
1.需要设置工程的build.gradle文件,注意这里不是module的gradle文件也不是app的gradle文件,添加以下代码:
dependencies {
//1.自动化maven打包插件
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
}
2.在module的build.gradle文件中添加以下代码:
这里的group填写你的Gitee创库根目录
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
group='com.gitee.xuqingcode'
3.设置gradle插件版本和gradle版本对应关系
在官网上找了gradle插件和gradle版本对应的关系,有内容随时更新:
插件版本 | 所需的 Gradle 版本 |
---|---|
1.0.0 - 1.1.3 | 2.2.1 - 2.3 |
1.2.0 - 1.3.1 | 2.2.1 - 2.9 |
1.5.0 | 2.2.1 - 2.13 |
2.0.0 - 2.1.2 | 2.10 - 2.13 |
2.1.3 - 2.2.3 | 2.14.1+ |
2.3.0+ | 3.3+ |
3.0.0+ | 4.1+ |
3.1.0+ | 4.4+ |
3.2.0 - 3.2.1 | 4.6+ |
3.3.0 - 3.3.2 | 4.10.1+ |
3.4.0+ | 5.1.1+ |
如果不对应,上传到JitPack有可能编译时会出现如下错误:
把本地的Android Library 项目使用 Git 上传到 Gitee,具体的 Git 操作可以按照项目页面中的提示进行,不再赘述。
Git 命令可以参考笔者之前写的一篇文章:Git命令大全
需要创建项目的发行版本才能上传到 JitPack。
创建的方式有两种:
1. 使用 Git 添加标签 tag,并且提交到 Gitee
git tag -a -m
git push --tags
操作完后即可在 Gitee 的项目中看到新创建的发行版本:
查看发行版本
发行的版本信息
2. 在Gitee项目中创建发行版本
在 Gitee 的项目中点击 "发行版" 标签栏:
点击发行版标签栏
在页面的右上角点击 "创建发行版" 按钮,进入到创建 发行版本的页面:
点击创建发行版本
填写必要的信息,即可创建一个新的 发行版本:
进入 JitPack,使用 GitHub 账号登录
把项目的地址填写到首页的输入框中,点击 "Look Up" 按钮即可自动进行发布:
当项目代码上传到Gitee创建发行版后,点击JitPack的“Look Up”按钮会需要等待一段时间后才会有版本的显示,因为JitPack需要从Gitee上获取发行版代码zip文件,然后解压编译,所以请耐心等待数十秒。
Look up
发布成功后显示如下图:
发布成功
点击 Log 下的图标可以查看 build 的日志。
点击 "Get it" 可以查看 Gradle 的依赖配置说明,如下图:
Gradle依赖说明
完成上述步骤后即完成了开源 Library 的发布,对比 JCenter 的发布流程简化了不少,使用起来非常的方便。
1.需要去掉自动化maven打包插件,不去掉会打包报错
2.需要在你项目的build.gradle去掉这里的maven相关引入。
1.需要在你项目的根目录添加jitpack.yml文件,这个用户在jitpack发布打包时指定jdk编译版本,不指定可能会报jdk版本不符的打包错误,文件名必须为:jitpack.yml。文件内容以及格式如下:
2.需要在你模块的build.gradle文件里添加:
3.需要在你模块的build.gradle文件android{}同级下添加:
可以直接复制:
afterEvaluate {
publishing {
publications {
// Creates a Maven publication called "release".
release(MavenPublication) {
// Applies the component for the release build variant.
from components.release
// You can then customize attributes of the publication as shown below.
groupId = 'site.xuqing.appbus'
artifactId = 'final'
version = '1.0.0'
}
}
}
}
4.多模块打包(更新时间:2022.3.15)
那么,像上面图片中展示的那样,当一个项目中有多个lib需要打包时该如何设置呢?
其实很简单,关键在你模块的的build.gradle里面设置:
每个模块设置不同的artifactId即可。
不同的artifactId会生成不同的模块引用,看我这个自动辅助框架的引用就是这样子:
5.如何查看我们打包的依赖地址(更新时间:2022-3-25)
在jitpack.io你当前打包的项目中查看编译log,如图:
点进去查看log:
至此,项目基本配置完成,然后你就可以上传你的代码,尽情的发布版本了,具体在发布中遇到什么问题,欢迎回复讨论!
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。