maven - 如何将 Jenkins 中的特定 Artifact 部署到 Nexus 中?

标签 maven jenkins jenkins-plugins nexus

我有一个在 Jenkins 中运行的多模块 Maven 项目。我想将最终的 Artifact (来自程序集构建的 RPM)部署到 Nexus 服务器。我认为没有理由部署中间 Artifact (因此没有“mvn clean deploy”),因为这会在服务器上产生我不需要的额外垃圾。我们正在尝试建立一个持续交付管道,因此我们永远不会部署快照版本。 Jenkins 的各种插件似乎专注于部署所有 Artifact 。我怎样才能只部署我选择的一个?

编辑:

经过深思熟虑,如果在所有构建完成后进行部署,我愿意将所有 Artifact 部署到 Nexus。如果我走这条路,我想使用“将 Artifact 部署到 Maven 存储库”构建后操作。这个工具似乎被破坏了,因为它缺少指定用户名/密码的功能。我知道这可以在 settings.xml 中指定,但显然只有“.m2”中的一个。它似乎没有查看我为此构建指定的settings.xml。

这似乎也因重新部署 Artifact 而被破坏。有一些verbage在“Jenkins 权威指南”中对此进行了说明,但它讨论了“本地”settings.xml。我的所有构建都发生在 Jenkins 从属设备上,因此这不是一个选项,甚至对 Jenkins 架构没有任何意义。

最佳答案

如果您仍然需要通用方式。

使用执行shell选项并手动使用mvn部署命令,您可以将您的版本和其他内容(例如groupID等)作为作业中的参数传递,如果您维护单独的作业来构建和上传这将解决问题。

例如:

导出 M2_HOME=/PATH/TO/softwares/apache-maven-3.0.4 路径=$M2_HOME/bin:$JAVA_HOME/bin:$PATH 导出路径

mvn-v

mvn 部署:部署文件 -Durl= http://someorg:8081/nexus/content/repositories/t1.snapshot/ -DrepositoryId=t1.snapshot -DartifactId=artifactID -DgroupId=groupID -Dpackaging=zip -Dfile=${WORKSPACE}/filename.zip -Dversion=1.0-TEST-SNAPSHOT -s "/path/to/.m2/settings. xml”

关于maven - 如何将 Jenkins 中的特定 Artifact 部署到 Nexus 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24069350/

相关文章:

scala - 如何为 SBT 设置本地代理存储库?

jenkins - 停止 Jenkins 在流水线阶段检查 Git URL

git - cloudbees 中的 jenkins 远端意外挂断

bash - Jenkins Groovy : how to extract specific number from parameter in method?

docker - 无法在docker上安装jenkins的建议插件

java - 在 Maven 项目中创建可执行 jar 时出错

maven - Apache beam WordCount在windows下运行报错

java - 将自定义依赖项添加到 spring 项目后缺少类

selenium - Jenkins 在不打开浏览器的情况下运行 selenium 测试

jenkins - 调试 Jenkins 插件