maven gitlab ci总是下载依赖项-runner中的缓存不起作用

dy1byipe  于 2023-08-03  发布在  Maven
关注(0)|答案(2)|浏览(252)

我是gitlab CI的新手,尝试使用gitlab构建我的maven项目。我为构建创建了自己的docker镜像,并且使用了本地的runner。
我的.gitlab-ci.yml看起来如下:编辑:

image: registry.gitlab.com/girishenoy2003/docker-java-8-mvn-3.6.3:latest
services:
  - docker:dind
stages:
  - compile
  - test
before_script:
  - export MVN_USER_HOME=`pwd`/.m2
cache:
  paths:
    - $MVN_USER_HOME/.m2/repository/
    - target/
maven-compile:
  stage: compile
  script:
    - mvn compile
  tags:
    - my-local-runner
  only:
    - master
maven-test:
  stage: test
  script:
    - mvn test
  tags:
    - my-local-runner
  only:
    - master

字符串
在编译阶段,我希望所有的依赖项都能下载并缓存它,而在运行test时,我希望它能从缓存中获取它,因为我使用本地的runner来执行这两个作业。
我们如何避免在不同的作业中下载依赖jar?

P.S.:

  • 我已经看过这个question了-但没有帮助
  • 我知道,如果我使用mvn test-compile,它将完成的技巧,但我想使它在不同的工作,以隔离阶段

编辑:一些跑步者日志:

Fetching changes with git depth set to 50...
Reinitialized existing Git repository in /builds/aws-learning-path/spring-boot-rest/.git/
Checking out f86f9c63 as master...
Removing "..\\..\\..\\cache\\aws-learning-path\\spring-boot-rest\\default\\cache.zip"
Removing target/
Skipping Git submodules setup
Restoring cache
00:00
Checking cache for default...
No URL provided, cache will not be downloaded from shared cache server. Instead a local version of cache will be extracted. 
Successfully extracted cache
Executing "step_script" stage of the job script
$ export MVN_USER_HOME=/root
$ mvn test
[INFO] Scanning for projects...
Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/2.2.2.RELEASE/spring-boot-starter-parent-2.2.2.RELEASE.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/2.2.2.RELEASE/spring-boot-starter-parent-2.2.2.RELEASE.pom (8.1 kB at 3.3 kB/s)

g52tjvyc

g52tjvyc1#

我也遇到了类似的问题,在我的例子中,变量的值只在script块中可见,而在cache中不可见。所以cache:paths的第一个值是/.m2/repository/- from root。我把变量移到了variables块中。

3mpgtkmj

3mpgtkmj2#

您的问题与/root文件夹有关
gitlab-runner不会缓存项目目录之外的任何路径,您需要配置配置项来下载并存储项目路径中的依赖项

相关问题