Gitlab CI - 如何在当前构建之前构建本地 Maven 依赖项?
Gitlab CI - how to build a local maven dependency before the current build?
我有以下设置:
- Java图书馆1
- Java 图书馆 2
- Java申请
"Java application" 依赖于 "Java Library 1" 和 "Java Library 2",它们都是内部的。
"Java Library 1"和"Java Library 2"需要在本地maven仓库安装"Java application"才能编译打包成功
"Java Library 1"、"Java Library 2" 和 "Java application" 是 GitLab 上的独立项目。
每个项目都有一个.gitlab-ci.yml.
每个 "Java Library" 都会有这样的东西:
build:
script:
- mvn clean install
stage: build
only:
- master
tags:
- java
我想告诉 "Java application" 中的 .gitlab-ci.yml 首先构建 "Java Library 1" 和 "Java Library 2".
可能吗?
我想你正在寻找 Multi Project Pipelines。
Multi-project pipeline graphs are useful for larger projects, especially those adopting a microservices architecture, that often have a set of interdependent components which form the complete product.
这里还有一个关于在 gitlab 上构建多项目的讨论:https://gitlab.com/gitlab-org/gitlab-ce/issues/4194
如果你使用的是Gitlab企业版,我建议使用dbrekelmans的解决方案。
也就是说,另一种可能性是设置一个工件服务,例如 Artifactory,让 maven 使用该服务的 repos。
用例:
- 开发库
- 推送代码到Gitlab
- CI 构建和部署库
- 在工作站和 CI 服务器上使用带有 maven 的库
有关如何实现此目的的教程,可在此处找到:
https://docs.gitlab.com/ee/articles/artifactory_and_gitlab/
我有以下设置:
- Java图书馆1
- Java 图书馆 2
- Java申请
"Java application" 依赖于 "Java Library 1" 和 "Java Library 2",它们都是内部的。
"Java Library 1"和"Java Library 2"需要在本地maven仓库安装"Java application"才能编译打包成功
"Java Library 1"、"Java Library 2" 和 "Java application" 是 GitLab 上的独立项目。
每个项目都有一个.gitlab-ci.yml.
每个 "Java Library" 都会有这样的东西:
build:
script:
- mvn clean install
stage: build
only:
- master
tags:
- java
我想告诉 "Java application" 中的 .gitlab-ci.yml 首先构建 "Java Library 1" 和 "Java Library 2".
可能吗?
我想你正在寻找 Multi Project Pipelines。
Multi-project pipeline graphs are useful for larger projects, especially those adopting a microservices architecture, that often have a set of interdependent components which form the complete product.
这里还有一个关于在 gitlab 上构建多项目的讨论:https://gitlab.com/gitlab-org/gitlab-ce/issues/4194
如果你使用的是Gitlab企业版,我建议使用dbrekelmans的解决方案。
也就是说,另一种可能性是设置一个工件服务,例如 Artifactory,让 maven 使用该服务的 repos。
用例:
- 开发库
- 推送代码到Gitlab
- CI 构建和部署库
- 在工作站和 CI 服务器上使用带有 maven 的库
有关如何实现此目的的教程,可在此处找到: https://docs.gitlab.com/ee/articles/artifactory_and_gitlab/