我为maven多项目创建了一个hudson作业,其中包含5个模块,用于将SNAPSHOT
工件部署到maven存储库。没关系,只要它成功构建而没有测试失败。但是,现在我想满足以下要求:
-Dmaven.test.failure.ignore=true
完成,但在下一个要求时失败。mvn test -Dmaven.test.failure.ignore=true
,而不是mvn deploy -DskipTests
)不是一个解决方案,因为它是一个性能损失并且它混淆了哈德森报告页面而且它不是原子的(它在存储库中再次从存储库更新)第二次建设)。有没有办法实现这个目标?
答案 0 :(得分:5)
有一个名为将部件工件部署到Maven存储库的后期构建选项。如果您没有选择 Deploy,即使构建不稳定,那么这意味着如果测试失败,它将不会部署任何内容。与命令中的-fae
一起,事物应以您想要的方式工作
答案 1 :(得分:2)
也许您可以尝试在hudson上使用 mvn -fae 选项 - 只有在完全构建后才会使maven失败
答案 2 :(得分:1)
如果构建时间对您来说不是问题,我认为更好的选择是创建另一个作业,仅用于部署。像这样:
也许您可以尝试将两个作业配置为使用相同的工作区,从而在整个构建/部署过程中节省一些时间。
答案 3 :(得分:1)
如果您碰巧使用Artifactory作为存储库管理器,则可以使用Hudson/Jenkins Artifactory plugin来部署工件。如果所有测试都通过了Maven构建的所有模块,则此插件将仅部署您的工件。