我有以下设置:
“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”。
有可能吗?
答案 0 :(得分:2)
我认为您正在寻找Multi Project Pipelines。
多项目管道图对于大型项目非常有用,特别是那些采用微服务架构的项目,这些项目通常具有一组相互依赖的组件,这些组件构成了完整的产品。
还有关于gitlab上多项目构建的讨论:https://gitlab.com/gitlab-org/gitlab-ce/issues/4194
答案 1 :(得分:1)
如果您使用Gitlab Enterprise Edition,我建议使用dbrekelmans的解决方案。
也就是说,另一种可能性是设置Artifactory等工件服务,让maven使用服务的回购。
用例:
可以在此处找到如何实现这一目标的教程: https://docs.gitlab.com/ee/articles/artifactory_and_gitlab/