代码之家  ›  专栏  ›  技术社区  ›  Carla

用jenkins构建两个git存储库

  •  1
  • Carla  · 技术社区  · 6 年前


    我需要构建两个在github上可用的maven项目。第一个项目生成第二个项目所需的库。 在詹金斯,建议做什么?
    创建一个shell脚本,以正确的顺序签出并构建两个项目。
    使用管道? 如果你能提供任何例子/相关链接,那就太好了。谢谢

    2 回复  |  直到 6 年前
        1
  •  1
  •   Fidel    6 年前

    您可以使用2(我的知识)选项来实现。让我们考虑构建库的项目a,而项目b是依赖的。我在下面通过考虑两个约束来描述两个选项。

    1. 项目B应在项目A建成时建成
    2. B项目也可以单独建造,如果只与项目B发生变化,但不与A

    选项1: 必须为项目A&B创建两个“Maven构建作业”。在项目B中,必须指定 “生成快照依赖项时生成” 在“生成触发器”下。

    只有当project b pom.xml依赖于project a构建的工件并且这些工件是快照时,这才适用。下面是相同的图像。 Jenkins Info details

    选项2: 您可以为项目A和B创建两个自由式作业。 “建立其他项目” 在下面 “生成后选项” 项目A。

    并且可以将项目A中的工件复制到项目B中。 Copy Artifact Plugin

    异常:理想情况下,如果您的项目a构件安装在 $HOME/.m2/repository 和pom.xml中定义的项目b依赖关系(或)两个项目a&b都是 使用私有maven存储库 选择权。

    假设:我希望使用单一的管道,很难管理这种情况。尽管我希望其他人也会用管道示例来启发我:)

        2
  •  1
  •   Ramakrishna Yelduti    6 年前

    可以使用詹金斯管道作业来实现这一点。

    首先,我们需要为项目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'
        }
      }
    }