gpt4 book ai didi

java - 使用 Gradle 上传文件到 GitLab Maven 仓库

转载 作者:搜寻专家 更新时间:2023-10-31 19:59:26 25 4
gpt4 key购买 nike

我使用 Gradle 和 Gradle Maven plugin将文件上传到 Maven Central。这很好用。我也想将相同的文件上传到 GitLab Maven 存储库。上传到这个 repo 需要 authentication with special HTTP header values .但我不知道如何使用 Gradle Maven 插件来做到这一点。 GitLab documentation描述了使用 pom.xmlsettings.xml 的基于 Maven 的构建过程。我目前拥有的是:

使用 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/* 必须用作存档地点。我该怎么做?

最佳答案

请注意the maven-publish plugin “现在是使用 Gradle 发布 [Maven] Artifact 的首选选项”(另请参阅您链接的 the page 顶部的注释)。恕我直言,使用 maven 插件做你需要的事情会更麻烦,因为它更复杂而且没有很好的文档记录。因此,当我在回答您的问题时考虑到 maven-publish 插件时,我希望您不会介意。

至于使用特殊 HTTP header 值的身份验证,您应该可以按以下方式解决(via):

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 插件,那么我建议从 this section 开始研究有关如何解决身份验证问题的文档。


顺便说一句:我在这里主要回答了你关于如何使用 GitLab 进行身份验证的问题。如果您在配置发布时遇到问题,那么我建议将其作为一个单独的问题发布,并提供有关您的设置以及可能已经尝试过的内容的更多详细信息。


编辑添加:如果您需要根据某些命令行选项使用不同的 header 凭据,您可以将上面的 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"
}
}

在此示例中,您可以在 GitLab CI 作业中运行 ./gradlew -PjobToken=REPLACE_WITH_YOUR_JOB_TOKEN ... 而在本地工作时省略 -PjobToken=... 部分。

关于java - 使用 Gradle 上传文件到 GitLab Maven 仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53898752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com