我有一个简单的 gitlab-ci
管道。现在我想向我想要在不同项目之间共享的库添加 maven
依赖项,例如我的主项目定义:
<dependencies>
<dependency>
<groupId>my.projects</groupId>
<artifactId>my-commons</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
my-commons 也是我的 gitlab
中的一个项目。
问题:在构建主项目期间,如何在该共享依赖项上触发 mvn clean install
到 ci-repository 中?
这是我主项目中的 gitlab-ci
:
image: adoptopenjdk/maven-openjdk11
#TODO how to trigger a mvn clean install on my-commons?
test:
stage: test
script: mvn test -B
build:
stage: build
script: mvn package -B -Dmaven.test.skip=true
artifacts:
paths:
- target/*.jar
deploy:
stage: deploy
script: ...
旁注:我知道我可以设置一个本地共享存储库管理器,例如 nexus
,但我想避免这种情况,只需将常见依赖项添加到构建过程中即可。
最佳答案
您可以构建自己的镜像并在 gitlab-ci 中使用它。
Dockerfile 示例:
FROM adoptopenjdk/maven-openjdk11
RUN mvn clean install
# ... other stuff
构建镜像并将其推送到 docker hub 后,您可以在 gitlab-ci 中使用它。
有用的链接:
关于java - 如何在 gitlab-ci docker 构建过程中拉取共享库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59823967/