我有一个在 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/