Theo cuộc nói chuyện qua trên GitLab's issue tracker, tôi quản lý để thay đổi đường dẫn kho lưu trữ địa phương Maven và đặt nó vào ./.m2/repository/
thư mục, đó là chúng ta sẽ sau đó vẫn tồn tại giữa chạy bằng cách thêm khối toàn cầu này cho CI config:
cache:
paths:
- ./.m2/repository
# keep cache across branch
key: "$CI_BUILD_REF_NAME"
Thật không may, theo this StackOverflow answer con đường kho địa phương maven chỉ có thể được đặt trên mỗi chạy với -Dmaven.repo.local
hoặc bằng cách chỉnh sửa settings.xml
, một tác vụ tẻ nhạt của bạn trong tập lệnh cấu hình gitlab-ci. Một tùy chọn sẽ là đặt một biến với các tùy chọn Maven mặc định và chuyển nó cho mọi lần chạy.
Ngoài ra, điều quan trọng là kho lưu trữ Maven cục bộ là con của thư mục hiện tại. Vì một lý do nào đó, hãy đặt nó trong /cache
hoặc /builds
không hoạt động đối với tôi, mặc dù một người nào đó từ GitLab đã xác nhận quyền sở hữu.
Ví dụ về một tập tin cấu hình gitlab-ci.yml
làm việc cho Maven + Java:
image: maven:3-jdk-8
variables:
MAVEN_OPTS: "-Djava.awt.headless=true -Dmaven.repo.local=./.m2/repository"
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version"
cache:
paths:
- ./.m2/repository
# keep cache across branch
key: "$CI_BUILD_REF_NAME"
stages:
- build
- test
- deploy
build-job:
stage: build
script:
- "mvn clean compile $MAVEN_CLI_OPTS"
artifacts:
paths:
- target/
unittest-job:
stage: test
dependencies:
- build-job
script:
- "mvn package $MAVEN_CLI_OPTS"
artifacts:
paths:
- target/
integrationtest-job:
stage: test
dependencies:
- build-job
script:
- "mvn verify $MAVEN_CLI_OPTS"
artifacts:
paths:
- target/
deploy-job:
stage: deploy
artifacts:
paths:
- "target/*.jar"
Maven có một bộ nhớ cache thường dưới '$ HOME/.m2/repository' hoặc có thể được cấu hình thông qua 'mvn -Dmaven.local.repo = Path'? – khmarbaise