1、maven打包不设置cache目录存在位置
为什么会存在这个位置呢?
因为maven的配置文件
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
2、指定特定的目录
方式一:采用bing mount方式
2.1.1 修改config.toml
然后在pepiline中定义maven保存路径
variables:
MAVEN_OPTS: "-Djava.awt.headless=true -Dmaven.repo.local=/opt/cache/.m2/repository"
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version"
build:
image: maven:3.8.2-jdk-8
# cache:
# paths:
# - .m2/repository
stage: build
tags:
- docker
script:
- mvn clean package -Dmaven.test.skip=true
- sleep 3600
方法二:用volume。配置文件默认的/cache
查看gitlab的pipeline源代码和cache挂载docker目录
方法一:
[root@docker volumes]# cd /var/lib/docker/volumes/
[root@docker volumes]# tree -Ld 5
方法二:
pepiline
variables:
MAVEN_OPTS: "-Djava.awt.headless=true -Dmaven.repo.local=.m2/repository"
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version"
build:
image: maven:3.8.2-jdk-8
cache:
paths:
- .m2/repository
stage: build
tags:
- docker
script:
- mvn clean package -Dmaven.test.skip=true
通过研究发现runner的缓存文件存放在:/var/lib/docker/volumes/下以runner-{runnerid}-开头的文件夹中,
每个项目的缓存存放方式:runner-{runnerid}-projects-{projectid}-concurrent-{num}-cache-3c3f060a0374fc8bc39395164f415a70|c33bcaa1fd2c77edfc3893b41966cea8
以3c3f060a0374fc8bc39395164f415a70结尾的文件夹中存放的就是缓存文件,以c33bcaa1fd2c77edfc3893b41966cea8结尾的文件夹中存放的是代码源文件。