我有一个包含多个模块的 maven 多模块项目。我想部署它们 ( mvn deploy
) 只有当它们都通过一个完整的mvn install
(包括测试)。
目前,我mvn install
在该项目上运行了一个。如果所有模块都通过了,我就跑去mvn deploy
部署。我看到的问题是浪费时间调用mvn
两次(即使我在第二次运行时跳过测试)。
有没有人对此有想法?
编辑:我了解到使用Artifactory作为存储库管理器和maven-artifactory-plugin与您的 maven 设置会将原子部署行为添加到mvn deploy
命令中。请参阅Artifactory 文档中的构建集成部分。
[披露 - 我与 JFrog 有关联。神器创造者。]
看一下deployAtEnd
Maven Deployment插件的参数:http : //maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html
这有点棘手。Maven 在执行构建生命周期时不是原子的。因此,一组损坏的工件可能最终会出现在存储库中。
我知道的一种解决方案是 Nexus Pro:http ://www.sonatype.com/Products/Nexus-Professional/Features - 它允许您提升构建或将某些存储库定义为暂存。因此,只有经过验证的版本才能升级使用。也许神器有类似的东西——我只是不知道。
如果该解决方案太昂贵,您可能需要创建一个清理构建或配置文件以删除已上传的工件。我的第一个猜测是编写一个 Maven 插件来使用代理远程 API,或者也许 Maven 功能已经足够了。但由于部署也意味着更新元数据 xml 文件,我认为没有删除 - 对此也不确定。
归档时间: |
|
查看次数: |
3804 次 |
最近记录: |