Maven通过Hudson发布

sal*_*sal 11 continuous-integration maven-2 hudson release-management jenkins

我正在设置Hudson使用批处理任务插件来对我们的内部存储库进行maven发布.我是这样做的:

mvn --batch-mode release:prepare
mvn --batch-mode release:perform
Run Code Online (Sandbox Code Playgroud)

我对人们使用的其他方法以及这些方法的优缺点感兴趣.此外,任何陷入困境的人都会遇到.

Bri*_*Fox 8

由于一些原因,我总是手工完成这些发布.首先,如果你必须回滚它,当你可以回到原始版本位置并执行它时会更容易.其次,因为您需要解决所有快照依赖关系作为该过程的一部分.

我们的开发过程让我们将依赖关系保留在先前版本的当前版本之外,直到修复需要升级.这意味着,如果我发布Nexus,Maven等,那么我会看到快照,这意味着我必须首先发布这些快照.这个过程实际上不可能自动化,因为它根据自上次发布以来的变化而变化.

也就是说,我们有一个特殊的机器(在Sonatype它只是一个虚拟机)只为构建设置.这样做是为了保证不会发生可能会意外影响构建的环境变化(如jdk更改).它还使任何人都可以更轻松地获取发布过程,因为它随时可以使用.

  • 替代方案是您执行发布:手动准备目标,或至少发布:prepare -Ddryrun = true,直到您完全确定所有条件都已完成,然后您可以启动构建过程并合理地确定它是去上班. (5认同)
  • 遗憾的是,我认为手动版本是一种技术上可以接受但在政治上不可接受的解决方案.我会提到Sonatype _personally_的一位资深人士建议我们手工完成我们的发布. (3认同)
  • 我真的很喜欢这个主意.释放:prepare -Ddryrun = true首先执行应该可以防止我们可能遇到的大多数问题. (2认同)