问题:执行'mvn deploy'的最佳解决方案是什么,以便部署部分仅在所有单元测试成功并且没有重复处理步骤后运行?
我希望简单的答案是:执行maven命令'x'(或使用标志),这样可以在不调用默认生命周期中的先前目标的情况下运行部署.
可悲的是,这似乎没有一个简单的答案.我已经在我到目前为止的路径中包含了详细信息.
我们有以下三个要求:
我们从简单的"mvn clean deploy"开始,但是我们注意到了几个问题:
这导致"损坏"状态,其中远程存储库可能仅具有部分部署(如果在构建中稍后存在具有故障的模块).
我们看了3种不同的解决方案:
我向社群提出了这个问题,并提供了我提供的背景细节,以确定是否有更好的方法或强烈的意见(可能)提出以下请求之一:
开箱即用,绝对违反当前的惯例:
笔记:
2013年8月20日更新
我测试了延迟部署插件并确定该工具按预期工作,但是很长时间.
对于我们的代码库:
除了延迟部署之后,部署跳过测试的干净程序包运行得更快,并且在测试成功之后实现了延迟部署的愿望.
部署生命周期执行时并且退出前面的每个目标(进程,编译,测试,包等)似乎有一点时间.然而,唯一的选择是破解非标准执行,只能节省10秒.
使用Maven Sonar插件执行声纳分析时:
我们收到以下错误:
[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.2:sonar (default- cli) on project museum-mobile: Can not execute SonarQube analysis: Not authorized. Please check the properties sonar.login and sonar.password. -> [Help 1]
我们的帐户仍被列为"声纳管理员",可以完全访问所有全局权限:管理质量配置文件,管理系统,执行分析,执行预览分析,配置项目,共享仪表板和过滤器
环境:
JIRA开业:MSONAR-66