gpt4 book ai didi

java - Jenkins 使用 Deploy to Maven Repository 将 Artifact 部署到 Nexus

转载 作者:行者123 更新时间:2023-11-29 08:43:55 26 4
gpt4 key购买 nike

我们有一个场景可以将 maven 构建生成的 Artifact 部署到 Nexus。 Jenkins 作业将运行目标 clean package。如果 pom.xml 具有 SNAPSHOT 版本,则 Artifact 应转到 SNAPSHOT 存储库。如果 pom.xml 有发布版本, Artifact 应该去发布 repo。知道我们如何使用 Deploy to Maven Repository 插件实现这一点。截至目前,我在 Execute Shell 中使用以下脚本。

#!/bin/bash
var1=$1
var2="SNAPSHOT"
if [[ $(echo "$var1"|grep -i "$var2" | wc -l | tr -d ' ') -gt 0 ]]; then
exit 1
else
exit 0
fi

在 Flexible Publish post build 操作中,我正在使用 Execute Shell 条件操作。根据脚本的结果,我将执行 Deploy to Maven repository post build 操作。这只能帮助部署到发布 repo。任何更好的方法。

最佳答案

我假设如果您不能更新存储库中的 pom 文件,您有两个选择:

  1. 有一个Maven Project plugin ,它允许您添加一个新的构建后操作 Deploy artifacts to Maven repository。它允许您设置存储库 URL 和名称,以及一些其他选项。将具有 snapshot 策略的存储库设置为目标将导致成功上传快照 Artifact 。注意
    • 仅当构建类型为 Maven build 时该步骤可用 (2/3)
    • 如果您尝试上传发布 Artifact ,上传将失败并显示 Bad request 错误
  2. 如果添加插件不是一个选项,您可以使用肮脏的 hack 并通过 sed 之类的东西即时更改 pom 文件作为构建的第一步.这是有风险的,除非绝对不可避免,否则不应使用。

要一次更新所有构建,我建议使用一些插件(Configuration Slicing plugin 作为选项)或直接通过 CLI 脚本更改 config.xml 文件,然后使用“重新加载配置”在 Jenkins 。

关于java - Jenkins 使用 Deploy to Maven Repository 将 Artifact 部署到 Nexus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37889183/

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