目前没有看到简单介绍gitlab当maven存储库的资料。于是整理了一篇,方便有需要的朋友少走弯路。
环境:GitLab Community Edition 13.8.2(12可能有差异,无法找到软件包的情况,有发现如何解决的朋友欢迎留言)
版本查看方式:在gitlab后台中查看,在你的部署域名中加上help,比如https://gitlab.xxxx.com/help
1.在gitlab创建一个新的安卓项目,在项目中选择“设置”-“仓库”-“部署令牌”-填入相关信息-创建部署令牌
填完之后会生成 ,token令牌**(要记下来,关闭之后就无法再查看token)**
2.发布配置:
// 用于打包源代码的任务 即kt文件可以直接查看或者方便debug
task androidSourcesJar(type: Jar) {
archiveClassifier.set('sources')
from android.sourceSets.main.java.srcDirs
}
afterEvaluate {
publishing {
publications {
if (isDebugLib) {
// 测试环境
debug(MavenPublication) {
//应用发布版本变体的组件
from components.debug
pom {
name = mavenName
//产物 此处仅为了上传源码包,也可自己定制处理其他逻辑
artifact androidSourcesJar
description = mavenDescription
//版本号 即: implementation 'com.google.android.material:material:1.4.0' 的1.4.0
version = mavenVersionDebug
//即: implementation 'com.google.android.material:material:1.4.0' 的 material
artifactId = mavenArtifactId
//即: implementation 'com.google.android.material:material:1.4.0' 的 com.google.android.material
groupId = mavenGroupId
}
}
} else {
// 正式环境
release(MavenPublication) {
from components.release
pom {
name = mavenName
description = mavenDescription
version = mavenVersionRelease
artifactId = mavenArtifactId
groupId = mavenGroupId
}
}
}
}
repositories {
maven {
//<这是要替换成自己的> 仓库地址和你们自己gitlab的浏览器地址栏那边的一样,项目id在项目名字的下方,token令牌就是刚刚需要记下来的令牌
url = "https://<仓库的域名,默认是gitlab.com>/api/v4/projects/<项目id>/packages/maven/"
credentials(org.gradle.api.credentials.HttpHeaderCredentials) {
name = "Deploy-Token"
value = '<token令牌>'
}
authentication {
header(HttpHeaderAuthentication)
}
}
}
}
}
3.依赖配置:
repositories {
maven {
//仓库群组名就是gitlab项目目录的上一级
url "https://<仓库的域名,默认是gitlab.com>/api/v4/groups/<仓库的群组名>/-/packages/maven"
name "GitLab"
credentials(HttpHeaderCredentials) {
name = 'Deploy-Token'
value = '<token令牌>'
}
authentication {
header(HttpHeaderAuthentication)
}
}
}
取群组id是可以依赖整个群组(多项目)里发布的maven仓库的aar包。当然上面的url除了取群组id,也可以直接取发布之后的url(单项目,不过所有aar包都可以发布到同一项目),如下图
至此所有配置完毕,点击gradle的publish命令即可上传远端仓库
参考资料:https://docs.gitlab.com/ee/user/packages/maven_repository/index.html#publish-by-using-gradle
版权声明:本文为u013016660原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。