Правильно кэшировать зависимости Maven в Gitlab-CI - PullRequest
0 голосов
/ 08 июня 2019

Я настроил и работаю после настройки

  • gitlab-ci, который использует программу-докер и загружает кэш на S3
  • сборка maven с настроенным кэшированием
  • кэширование корректно загружается и загружается на каждую работу

Но проблема в том, что каждый раз, когда я запускаю mvn install, что-то в локальном репозитории maven изменяется (я предполагаю, что он обновляет метаданные pom), и бегун gitlab продолжает загружать новые версии кэша при каждой отдельной сборке.

enter image description here

По-прежнему быстрее и надежнее использовать этот «отключенный» кэш, чем каждый раз загружать депы из Интернета, но загрузка может занять много времени, и я бы хотел сэкономить это дополнительное время.

Как я могу изменить свою сборку, чтобы заставить maven генерировать кешируемый локальный репозиторий?

Упрощенная версия моего .gitlab-ci.yml:

variables:
  # we have a custom java+maven image, that uses this ENV variable,
  # to auto-configure path where to put the local maven repository
  MAVEN_LOCAL_REPOSITORY: $CI_PROJECT_DIR/.cache/maven

job-build:
  stage: build
  image: internal-gitlab/java/maven:3.6-jdk8-alpine
  script:
    - mvn -B clean package
  cache:
    key: backend-dependencies
    paths:
      - .cache/
...