我正在设置Hudson使用批处理任务插件来对我们的内部存储库进行maven发布.我是这样做的:
mvn --batch-mode release:prepare mvn --batch-mode release:perform
我对人们使用的其他方法以及这些方法的优缺点感兴趣.此外,任何陷入困境的人都会遇到.
由于一些原因,我总是手工完成这些发布.首先,如果你必须回滚它,当你可以回到原始版本位置并执行它时会更容易.其次,因为您需要解决所有快照依赖关系作为该过程的一部分.
我们的开发过程让我们将依赖关系保留在先前版本的当前版本之外,直到修复需要升级.这意味着,如果我发布Nexus,Maven等,那么我会看到快照,这意味着我必须首先发布这些快照.这个过程实际上不可能自动化,因为它根据自上次发布以来的变化而变化.
也就是说,我们有一个特殊的机器(在Sonatype它只是一个虚拟机)只为构建设置.这样做是为了保证不会发生可能会意外影响构建的环境变化(如jdk更改).它还使任何人都可以更轻松地获取发布过程,因为它随时可以使用.