java - 带有 Docker Image 的 MAVEN 项目的 Gitlab CI
问题描述
我有关于 java 的项目,我有我的测试。现在我有.gitlab-ci.yml
:
image: maven:latest
stages:
- build
build:
stage: build
script:
- mvn test-compile compile
tags:
- mytag
only:
refs:
- dev
每次,当我在我的仓库中提交时,我都在等待很多时间,它会下载所有依赖项。在 docker 中,我们可以使用音量选项。问题:我可以在本地下载和编译这个项目来创建.m2
目录吗,我可以在我的.gitlab-ci.yml
. 如果是,你能帮我怎么做,因为我没有根据它在互联网示例中找到。
我在我的/etc/gitlab-runner/config.toml
:
[runners.docker]
tls_verify = false
image = "maven:latest"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache","/M2/.m2:/root/.m2"]
shm_size = 0
/M2/
是一个目录,拥有 gitlab-runner 所有者。但这无济于事,我们怎么能看到:
Downloaded from central: https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom (2.0 kB at 20 kB/s)
Downloading from atlas: https://dl.bintray.com/qameta/maven/org/seleniumhq/selenium/selenium-java/3.8.1/selenium-java-3.8.1.pom
Downloading from nio: http://clojars.org/repo/org/seleniumhq/selenium/selenium-java/3.8.1/selenium-java-3.8.1.pom
Downloading from central: https://repo.maven.apache.org/maven2/org/seleniumhq/selenium/selenium-java/3.8.1/selenium-java-3.8.1.pom
Progress (1): 2.2/5.9 kB
Progress (1): 5.0/5.9 kB
Progress (1): 5.9 kB
解决方案
采取的步骤:(主机 - 机器 gitlab - 安装了跑步者并且跑步者签名)
- 在主机上克隆您的存储库
- 用maven编译
- 检查主机上 /root/.m2 下是否有缓存数据文件夹
- 修复你的 config.toml 添加这一行
卷 = ["/cache","~/.m2:/root/.m2"]
- 然后添加到 .gitlab-ci.yml
cache: paths: - /root/.m2/
variables: MAVEN_OPTS: "-Dmaven.repo.local=.m2"
.gilatb.yml 应该是这样的
推荐阅读
- python-3.x - Pycaret.regression.compare_models:评估表既不返回也不显示
- angular - 如何从 Angular 方法返回 HTML 表达式?
- regex - 正则表达式在 ios 上提取捆绑 ID
- c# - 日期时间解析“2021-04-20T00:09:14.7724640+02:00”
- android - 如何在颤动中使用时间跟踪其他应用程序?
- python - Sklearn:仅从每个目标类中获取少量记录
- python - TensorFlow:自定义层 for-loop 性能 [TensorArray, map_fn]
- php - 降低带有背景的产品图像的亮度
- python - Python 中的 URLError [Errno 11001] getaddrinfo failed>
- amazon-web-services - 将电子邮件 ID 添加到 aws 帐户并授予访问权限