Jenkins 使用 Deploy to Maven Repository 将工件部署到 Nexus
Jenkins Deploy Artifacts to Nexus using Deploy to Maven Repository
我们有一个场景可以将 maven 构建生成的工件部署到 Nexus。 Jenkins 的工作将 运行 个目标 clean package
。如果 pom.xml 有 SNAPSHOT 版本,工件应该转到 SNAPSHOT 存储库。如果 pom.xml 有发布版本,工件应该去发布 repo。知道我们如何使用 Deploy to Maven Repository 插件实现这一点。截至目前,我在执行 Shell 中使用以下脚本。
#!/bin/bash
var1=
var2="SNAPSHOT"
if [[ $(echo "$var1"|grep -i "$var2" | wc -l | tr -d ' ') -gt 0 ]]; then
exit 1
else
exit 0
fi
在 Flexible Publish post 构建操作中,我正在使用 Execute Shell 条件操作。根据脚本的结果,我将执行部署到 Maven 存储库 post 构建操作。这只能帮助部署到发布 repo。任何更好的方法。
我相信这个功能是 Maven 本身内置的;您可以在 <distrobutionManagement>
块中指定不同的 <repository>
和 <snapshotRepository>
。 (参见 docs)
我假设如果您无法更新存储库中的 pom 文件,您有两个选择:
- 有一个 Maven Project plugin,它允许您添加新的 post-build 操作
Deploy artifacts to Maven repository
。它允许您设置存储库 URL 和名称,以及其他一些选项。将带有 snapshot
策略的存储库设置为目标将导致成功上传快照工件。注意
- 仅当构建类型为
Maven build
(2/3) 时,该步骤才可用
- 如果您尝试上传发布工件,上传将失败并出现
Bad request
错误
- 如果添加插件不是一个选项,您可以使用肮脏的 hack 并通过
sed
之类的东西更改 pom
文件 on-the-fly 作为构建的第一步。这是有风险的,如果不是绝对不可避免,则不应使用。
要一次更新所有构建,我建议使用一些插件(Configuration Slicing plugin 作为一个选项)或直接通过 CLI 脚本更改 config.xml
文件,然后使用 "Reload configuration"在詹金斯。
我们有一个场景可以将 maven 构建生成的工件部署到 Nexus。 Jenkins 的工作将 运行 个目标 clean package
。如果 pom.xml 有 SNAPSHOT 版本,工件应该转到 SNAPSHOT 存储库。如果 pom.xml 有发布版本,工件应该去发布 repo。知道我们如何使用 Deploy to Maven Repository 插件实现这一点。截至目前,我在执行 Shell 中使用以下脚本。
#!/bin/bash
var1=
var2="SNAPSHOT"
if [[ $(echo "$var1"|grep -i "$var2" | wc -l | tr -d ' ') -gt 0 ]]; then
exit 1
else
exit 0
fi
在 Flexible Publish post 构建操作中,我正在使用 Execute Shell 条件操作。根据脚本的结果,我将执行部署到 Maven 存储库 post 构建操作。这只能帮助部署到发布 repo。任何更好的方法。
我相信这个功能是 Maven 本身内置的;您可以在 <distrobutionManagement>
块中指定不同的 <repository>
和 <snapshotRepository>
。 (参见 docs)
我假设如果您无法更新存储库中的 pom 文件,您有两个选择:
- 有一个 Maven Project plugin,它允许您添加新的 post-build 操作
Deploy artifacts to Maven repository
。它允许您设置存储库 URL 和名称,以及其他一些选项。将带有snapshot
策略的存储库设置为目标将导致成功上传快照工件。注意- 仅当构建类型为
Maven build
(2/3) 时,该步骤才可用
- 如果您尝试上传发布工件,上传将失败并出现
Bad request
错误
- 仅当构建类型为
- 如果添加插件不是一个选项,您可以使用肮脏的 hack 并通过
sed
之类的东西更改pom
文件 on-the-fly 作为构建的第一步。这是有风险的,如果不是绝对不可避免,则不应使用。
要一次更新所有构建,我建议使用一些插件(Configuration Slicing plugin 作为一个选项)或直接通过 CLI 脚本更改 config.xml
文件,然后使用 "Reload configuration"在詹金斯。