GitLab配置maven Repository仓库使用

  • Post author:
  • Post category:其他


目前没有看到简单介绍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 版权协议,转载请附上原文出处链接和本声明。