我正在将Hudson设置为使用批处理任务插件来对我们的内部存储库进行Maven发布。我这样做是通过:
mvn --batch-mode release:prepare mvn --batch-mode release:perform
我对人们使用的其他方法以及这些方法的优缺点感兴趣。此外,遇到了任何陷阱。
由于某些原因,我倾向于总是手动进行发布。首先,如果您必须回滚,则可以更轻松地返回原始发行位置并执行此操作。其次,因为您需要在该过程中解决所有快照依赖性。
我们的开发过程使我们在以前的版本中将依赖项保留在当前版本的外部,直到需要升级为止。这意味着如果我要发布Nexus,Maven等,那么我会看到快照,这意味着我必须先退出并释放这些快照。该过程实际上不可能实现自动化,因为它会根据自上一发行版以来所做的更改而有所不同。
就是说,我们有一台专门用于构建的特殊机器(在Sonatype上只是一个虚拟机)。这样做是为了确保不会发生可能会意外影响构建的环境变化(例如jdk变化)。由于它随时可以使用,因此它也使任何人都可以更轻松地进行发布过程。