我正在使用Jenkins构建Maven Java项目并将它们部署到Nexus存储库。我也使用Git,虽然我更习惯Subversion,所以我的Git知识有限。
我想Jenkins / Maven:
我收集了Git,因此可以实现合并:http://twasink.net/2011/09/20/git-feature-branches-and-jenkins-or-how-i-learned-to-stop-worrying-about-broken-builds/
我也阅读了很多关于maven-release-plugin
的内容。
我不确定如何实现上述结果。如果我将SCM详细信息硬编码到每个项目的POM中,那么maven-release-plugin
不会仅仅在那个存储库上而不是Jenkins的本地存储库吗?
如果我使用Jenkins将环境变量传递给Maven以指定版本号的解决方案,那么我希望在我的IDE中存在本地版本解析问题。
答案 0 :(得分:8)
首先,我们需要将两个分支合并在一起。使用Jenkins Git插件非常容易,因为它有feature built in: 合并之前合并 选项在高级中可用项目配置中的部分。
所以我们得到了这两个分支之间合并的代码,我们可以转移到构建项目 - 像往常一样,Maven风格的Jenkins项目。
现在我们需要增加项目的版本及其模块,提交合并的分支并将工件推送到存储库。在这里我们有两个选择:
-DconnectionUrl=
提供的插件。如果没有提供,它将检查release.properties文件以从那里获取它。最后一个保留是转到pom.xml ang get ${project.scm.connection}
变量。因此,您可以轻松地使用该插件完成所有脏工作而不会有任何麻烦,并使用Jenkins提供的不同技术引入该属性。在这两种情况下,您都可以使用后续步骤与仅在构建成功时运行选项并像往常一样调用顶级Maven目标。对于上面提到的或特定插件所描述的所有设置,可以选择在文本字段中轻松提供它们。 为了将工件上传到Nexus仓库,我将使用Jenkins内置功能将部署工件部署到Maven存储库,这在您的项目配置中是可用的。这将要求您在POM定义或属性中提供存储库配置。
希望涵盖您的所有问题。如果您需要我在答案的任何范围内更具体,请不要犹豫。