Maven 依赖缓存不适用于 Gitlab Runner

时间:2021-01-07 04:41:45

标签: java maven gitlab gitlab-ci-runner

我在这上面花了很多时间,但它似乎不起作用。尝试过多个项目。

我们自己托管由 Gitlab (SaaS) 管理的 gitlab 运行程序(通过 EKS 在我们的 AWS 上)。我希望它缓存 maven 依赖项。

当我根据参考示例进行配置时: https://gitlab.com/gitlab-org/gitlab-ci-yml/blob/master/Maven.gitlab-ci.yml ,它仍然每次都下载所有依赖项。

stages:
  - test
  - pack

image: maven:3.6.1-jdk-8

variables:
  MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
  MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"


cache:
  paths:
    - .m2/repository


stylecheck_and_test:
  stage: test
  only:
    - tags
    - schedulers
    - web
    - triggers
    - branches
  script:
    - mvn $MAVEN_CLI_OPTS install -Dmaven.test.skip=true
    - mvn $MAVEN_CLI_OPTS clean test

1 个答案:

答案 0 :(得分:-1)

看起来本地 repo 和缓存路径不匹配,试试这个。

stages:
  - test
  - pack

image: maven:3.6.1-jdk-8    

variables:
      MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=maven.repository -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
      MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
    
    
    cache:
      paths:
        - maven.repository/

stylecheck_and_test:
  stage: test
  only:
    - tags
    - schedulers
    - web
    - triggers
    - branches
  script:
    - mvn $MAVEN_CLI_OPTS install -Dmaven.test.skip=true
    - mvn $MAVEN_CLI_OPTS clean test