用Jenkins构建两个git存储库

时间:2018-06-12 10:09:38

标签: jenkins jenkins-pipeline


我需要构建两个可以在Github上使用的Maven项目。第一个项目产生了第二个项目所需的库。 在Jenkins中推荐的选项是什么?
创建一个shell脚本,检查并构建两个项目(按正确的顺序)。
使用管道? 如果您能提供任何可能很好的示例/相关链接。感谢

3 个答案:

答案 0 :(得分:1)

您可以使用2(据我所知)选项。让我们考虑构建库的项目A和项目B是依赖项。我在下面通过考虑两个约束来描述两个选项。

  1. 只要构建项目A,就应该构建项目B
  2. 如果只有项目B的更改而不是A
  3. ,项目B也可以单独构建

    选项1: 你必须创建两个" Maven Build工作"项目A& B.在项目B中,您必须在构建SNAPSHOT依赖项时指定" Build" 在" Build Triggers"下。

    这仅适用于项目B pom.xml具有项目A构建工件的依赖项且工件为SNAPSHOT时。下面是相同的图像。 Jenkins Info details

    选项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