Gitlab CI - 如何在当前构建之前构建本地maven依赖项?

时间:2017-12-06 15:35:04

标签: java gitlab maven-3 gitlab-ci

我有以下设置:

  • Java Library 1
  • Java Library 2
  • Java应用程序

“Java应用程序”依赖于“Java Library 1”和“Java Library 2”,它们都是内部的。

在成功编译和打包“Java应用程序”之前,需要在本地maven存储库上安装“Java Library 1”和“Java Library 2”。

“Java Library 1”,“Java Library 2”和“Java application”是GitLab上的独立项目。

每个项目都有一个.gitlab-ci.yml。

每个“Java库”都有这样的东西:

build:
    script:
        - mvn clean install
    stage: build
    only:
        - master
    tags:
        - java

我想告诉“Java应用程序”中的.gitlab-ci.yml,首先构建“Java Library 1”和“Java Library 2”。

有可能吗?

2 个答案:

答案 0 :(得分:2)

我认为您正在寻找Multi Project Pipelines

  

多项目管道图对于大型项目非常有用,特别是那些采用微服务架构的项目,这些项目通常具有一组相互依赖的组件,这些组件构成了完整的产品。

enter image description here

还有关于gitlab上多项目构建的讨论:https://gitlab.com/gitlab-org/gitlab-ce/issues/4194

答案 1 :(得分:1)

如果您使用Gitlab Enterprise Edition,我建议使用dbrekelmans的解决方案。

也就是说,另一种可能性是设置Artifactory等工件服务,让maven使用服务的回购。

用例:

  • Develope Libary
  • 将代码推送到Gitlab
  • CI构建和部署libary
  • 在工作站和CI服务器上使用带有maven的libary

可以在此处找到如何实现这一目标的教程: https://docs.gitlab.com/ee/articles/artifactory_and_gitlab/