Я надеюсь, что кто-то может помочь мне с простой настройкой сценариев maven CI для GitLab.
Я попытался выполнить поиск в stackoverflow и в Google, что привело к нескольким вопросам и ответам, но либо они кажутся совершенно разными, либо я их не понимаю.
У меня есть простая настройка двух проектов. project B
зависит от project A
(= упаковка pom).
У меня в конфигурации бегуна /etc/gitlab-runner/config.toml
строка с добавленными томами
[[runners]]
...
[runners.docker]
...
volumes = ["/cache", "/.m2"]
...
my .gitlab-ci.yml
для обоих проектов выглядит так
image: maven:3.6.1-jdk-12
cache:
paths:
- /.m2/repository
- target/
variables:
MAVEN_OPTS: "-Dmaven.repo.local=/.m2/repository"
maven_job:
script:
- mvn clean install
с этим - первый проект собирается правильно, и я вижу, что кэширование работает, так как он не загружает все связанные с maven плагины для сборки проекта, когда выполняется снова и снова.
В нем также говорится
[INFO] Installing /builds/end2end/projectA/pom.xml to /.m2/repository/de/end2end/projectA/0.4.4-SNAPSHOT/projectA-0.4.4-SNAPSHOT.pom
Он сообщает, хотя в конце
WARNING: /.m2/repository: not supported: outside build directory
WARNING: /.m2/repository/classworlds: not supported: outside build directory
WARNING: /.m2/repository/classworlds/classworlds: not supported: outside build directory
WARNING: /.m2/repository/classworlds/classworlds/1.1-alpha-2: not supported: outside build directory
WARNING: /.m2/repository/classworlds/classworlds/1.1-alpha-2/_remote.repositories: not supported: outside build directory
[...]
При выполнении projectB
задание не выполняется с информацией, которую он не может найти projectA
.
Итак - что не так с конфигурацией файлов runner / .gitlab-ci.yml?
Я пытался
cache:
paths:
- .m2/repository
, который удаляет предупреждения, но затем проект A получает локально .m2
установлен
[INFO] Installing /builds/end2end/projectA/pom.xml to /builds/end2end/projectAt/.m2/repository/de/end2end/projectA/0.4.4-SNAPSHOT/projectA-0.4.4-SNAPSHOT.pom
и projectB
завершаются с той же ошибкой, что и выше.