java - 如何在 gitlab-ci docker 构建过程中拉取共享库?

标签 java maven docker gitlab

我有一个简单的 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/

相关文章:

docker - 标签: while pushing image to local registry在本地不存在图像

docker - "Mounted from blah"对 docker push 命令意味着什么?

java - 为什么 OpenJDK 8 在使用 Docker 时没有提取正确的 JavaFX 库?

java - MySQL 连接器类路径

java - MongoDB 批量插入不适用于 java 驱动程序 2.11.2

java - 检查 Android 中的互联网连接是否处于 Activity 状态

java - teamcity如何自动推送jar到Artifactory

java - 放入 POM 内存中的 git commit id 不会进入 list

Docker - 如何将文件从图像复制到主机?

java - 在我的 Java SFTP 类中,为什么会收到此 java.net.ConnectException?