我目前在我的第一个月,在我的第一份编程工作,并已获得了几天,看看我是否可以用新鲜的詹金斯安装我们的自动化构建过程。我有它的工作,但需要在Jenkins中手动执行一些操作,例如生成具有参数化构建的特定JAR版本,虽然这可行,但我希望将其进一步自动化。提前感谢您的时间!Jenkins + Maven + Git标签 - 通过标签构建依赖项解析?
所以,我有一个使用Maven的扶养分辨率的项目。我正在使用Jenkins来自动化构建过程。我在Jenkins上使用了git-parameter插件,这样我就可以选择标记版本的项目和子项目来构建。
该项目依赖于git中各种版本标签的子项目,主项目的Dev/Prod版本依赖于这些子项目的不同版本,在各自的POM文件中指定。
例如:
- DEV:pom.xml的依赖LIB-A 2.0.0/LIB-B 1.5.0。
- PROD:Pom.xml依赖于lib-A 1.0.0/lib-B 1.0.0。
LIB-A: Git标签:2.0.0,1.5.0,1.0.0
LIB-B: Git标签:1.5.0,1.0.0
所有的项目都存在于一个私人的git仓库中,我可以指定在Jenkins中手动构建哪个标记版本作为参数化作业,以便在DEV和PROD的本地.M2仓库中创建该版本的JAR工件。例如,如果我需要lib-A 1.5.0作为DEV中的依赖项,我将手动点击参数1.5.0并点击构建。
然而,有没有什么办法来自动完成这一过程,因此将能够解决maven的依赖版本,并作为参数传递给当前工作参数化构建子项目发送这些版本?
也就是说,一个干净的机器与我詹金斯配置上我能为DEV开始构建,它会:
- 混帐克隆DEV,LIB-A和lib-B。
- 检查pom.xml以获得lib-A和lib-B版本
- 发送这些版本作为git-parameter-plugin参数来为lib-A和lib-B构建作业,以生成编译所需的相关JAR主要的DEV项目?
我知道这看起来很模糊。但我并没有真正解决问题,只是询问这是否可能,以及可能会调用什么,以便我可以使用Google来教我自己如何去做。提前谢谢了!!
有些东西我不明白:您可能有一个公司范围的工件存储库(不仅仅是Jenkins服务器上的本地m2存储库)。对于所有发布版本,罐子应该已经在那里。你是否在谈论SNAPSHOT版本的一些机制? –
目前没有工件存储库,该公司太小以至于现有的开发人员已经手动构建和部署。 我想有一种方法可以从pom.xml获取一个属性,将它作为参数传递给参数化构建,现在看看:) –
实际上,如果使用Maven构建,则应该有一个存储库。在Jenkins服务器上处理(仅)本地存储库并没有意义。看看Nexus或Artifactory。我们使用Nexus,这很容易处理。# –