His*_*His 5 java maven-2 hudson release release-management
我使用构建目标为我的项目设置Hudson,mvn clean deploy site:site每隔午夜运行一次构建,并且每当有新的更改时.
我一直想知道的一件事是我是否应该包含deploy在构建目标中,因为如果我刚刚发布了我的项目的1.0.0版本(我已经将pom更改为版本1.0.0并提交了它),那么可能会发生这种情况.还没有将版本号增加到1.0.1-SNAPSHOT几天,我最终会在不同的时间部署多个不同的1.0.0版本.
但我看到人们正在使用deploy哈德森的构建目标 - 我想知道他们是如何处理这个问题的.
实际上与Maven一起发布的正确方法是什么?感谢您的任何指示!
您应该继续从Hudson进行自动夜间部署,但是关于如何处理版本号和版本的更大问题与您的源代码控制系统无关.您没有提到您正在使用哪种源代码控制系统,但我可以使用Subversion解释如何执行此操作.
首先,你提到的原因,你应该永远在树干改变你的源代码的版本标识符比快照版本(例如与其他任何东西-SNAPSHOT就完了).否则,您将在重新部署时覆盖.最佳做法是(暂时)将主干pom(s)中的版本标识符更改为要发布的版本,标记主干,从标记构建,然后部署从标记生成的构建,然后立即提升trunk中的快照版本标识符,最后使用较新的较高快照版本号提交trunk.
如果这看起来很麻烦,那么您应该知道Maven Release Plugin将依靠Maven SCM插件自动完成所有这些操作,以便与您的源代码控制系统一起工作.
虽然我已经喜欢从Hudson那里调用Maven Release Plugin,但这是一件非常敏感的事情.为了使其正常运行,这里有一些提示:
另请注意,Maven Release Plugin与Hudson集成,但不需要从Hudson调用Maven发布插件目标,它只是让它更容易,但是,我没有运气让这个插件工作.
总结一下:
希望这可以帮助.