我需要构建两个可以在Github上使用的Maven项目。第一个项目产生了第二个项目所需的库。
在Jenkins中推荐的选项是什么?
创建一个shell脚本,检查并构建两个项目(按正确的顺序)。
使用管道?
如果您能提供任何可能很好的示例/相关链接。感谢
答案 0 :(得分:1)
您可以使用2(据我所知)选项。让我们考虑构建库的项目A和项目B是依赖项。我在下面通过考虑两个约束来描述两个选项。
选项1: 你必须创建两个" Maven Build工作"项目A& B.在项目B中,您必须在构建SNAPSHOT依赖项时指定" Build" 在" Build Triggers"下。
这仅适用于项目B pom.xml具有项目A构建工件的依赖项且工件为SNAPSHOT时。下面是相同的图像。
选项2: 您可以为项目A&创建两个Freestyle作业。 B.使用"构建其他项目" 在"构建后选项&#下定义项目B是项目A的下游(也可以反过来)项目A的34; 。
您可以使用Copy Artifact Plugin
将工件A从项目A复制到项目B.例外:理想情况下,如果您的项目A工件安装在$HOME/.m2/repository
上并且项目B依赖项在pom.xml(或)项目A和A中定义,则上述步骤不是必需的。 B 使用Private Maven Repository 选项。
假设:我希望使用单一管道,很难管理这种情况。虽然我希望别人会用管道示例写一下来启发我:)
答案 1 :(得分:1)
您可以使用Jenkins管道作业实现此目的。
首先,我们需要为项目A创建一个文件夹,并且您可以使用GIT插件下载源代码,然后您可以构建解决方案。
创建另一个文件夹并在下载内部另一个项目的源代码,您可以构建第二个解决方案。
例如:
node{
stage('first project'){
dir('project1'){
git branch: '<Branch>', changelog: false, poll: false, url: '<First Repo URL>'
sh 'mvn clean install'
}
}
stage('second project'){
dir('project2'){
git branch: '<Branch>', changelog: false, poll: false, url: '<Second Repo URL>'
sh 'mvn clean install'
}
}
}
答案 2 :(得分:0)
共享一种我用于构建两个更改的方法。 只需在您的git commit消息中的Change-Id之前添加“ Depends:xxxxxxx”:
取决于:fe1a5effxxxxxxxxxxxxxxxxb8xxxx
变更编号:Ig43j5cxxxxxxxxxxxxxxxxxxxxxxxxxxxx