作者:小雨闹不住 | 来源:互联网 | 2022-11-24 05:15
我使用Gradle和Gradle Maven插件将档案上传到Maven Central。这很好。我也想将相同的档案上传到GitLab Maven仓库。上载到此仓库需要使用特殊的HTTP标头值进行身份验证。但是我不知道如何使用Gradle Maven插件来做到这一点。该GitLab文档描述了使用Maven的基础构建过程pom.xml
和settings.xml
。我目前所拥有的是:
用Gradle创建的文件:
build/libs
??? wms-1.2.0.jar
??? wms-1.2.0.jar.asc
??? wms-1.2.0-javadoc.jar
??? wms-1.2.0-javadoc.jar.asc
??? wms-1.2.0-sources.jar
??? wms-1.2.0-sources.jar.asc
build/poms
??? pom-default.xml
根据GitLab文档的文件:
pom.xml
settings.xml
当我执行
mvn deploy -s settings.xml
然后pom-default.xml
必须“混入” pom.xml
并且build/libs/*
必须用作存档位置。我怎样才能做到这一点?
1> Chriki..:
请注意,该maven-publish
插件 “现在是出版[Maven的]文物的优先选择”用摇篮(也见顶部的说明页面,你的链接)。maven
恕我直言,使用插件执行您需要的操作会比较麻烦,因为它既复杂又没有文档说明。因此,希望您maven-publish
在介意插件时回答您的问题时,不要介意。
至于使用特殊HTTP标头值的身份验证,您应该可以通过(通过)解决以下问题:
publishing {
repositories {
maven {
url "http://repo.mycompany.com/maven2"
credentials(HttpHeaderCredentials) {
name = "Private-Token"
value = "REPLACE_WITH_YOUR_PERSONAL_ACCESS_TOKEN"
}
authentication {
header(HttpHeaderAuthentication)
}
}
}
}
我真的想使用旧的maven
插件,然后建议从文档的此部分开始研究如何解决身份验证问题。
顺便说一句:我主要是在这里回答了您有关如何使用GitLab进行身份验证的问题。如果您在配置发布时遇到麻烦,那么我建议将其作为一个单独的问题发布,其中包含有关您的设置以及您已经尝试过的内容的更多详细信息。
编辑添加:如果您需要根据某些命令行选项使用不同的标头凭据,则可以将credentials
上面的配置更改为以下内容:
credentials(HttpHeaderCredentials) {
if (project.hasProperty('jobToken')) {
name = "Job-Token"
value = project.property('jobToken')
} else {
name = "Private-Token"
value = "REPLACE_WITH_YOUR_PERSONAL_ACCESS_TOKEN"
}
}
在此示例中,您可以./gradlew -PjobToken=REPLACE_WITH_YOUR_JOB_TOKEN …
在GitLab CI作业中运行,而-PjobToken=…
在本地工作时省去零件。