使用Docker和Kotlin缓存Maven [英] Caching Maven with Docker and Kotlin

查看:106
本文介绍了使用Docker和Kotlin缓存Maven的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在构建Kotlin项目之前预热Docker + Maven缓存. 正如许多Maven/Docker线程所建议的那样,我的docker文件如下所示:

I am trying to warm up my Docker + Maven cache before building a Kotlin project. As suggested by many Maven/Docker threads, my docker file looks like this:

COPY pom.xml .
RUN  mvn dependency:go-offline
COPY ./src/ src/
RUN  mvn package

这种想法是,如果我更改./src目录中的文件,我希望docker缓存跳过maven冗长的依赖项下载页面.

The thought is that if I change a file in the ./src directory, I want docker cache to skip maven's lengthy dependency download page.

我的问题是mvn package命令仍然下载大量文件. 我试图使用mvn -o package(Maven脱机标志)来诊断缺少哪些依赖项,但是它只是抱怨无法下载依赖项.但是我希望可以在上一步中下载依赖项.这是我通过"-o"标志得到的错误:

My problem is that the mvn package command still downloads alot of files. I tried to use mvn -o package (maven offline flag) to diagnose what dependencies are missing, but it just complains that it cannot download dependencies. But I would have expected that the dependencies would allready be downloaded in the previous step. Here are the errors that I get with the "-o" flag:

Step 8/13 : RUN  mvn dependency:go-offline
 ---> Using cache
 ---> 0334facb9cc9
Step 9/13 : COPY ./src/ src/
 ---> Using cache
 ---> 27149a191017
Step 10/13 : RUN  mvn -o package
 ---> Running in 5183eced32ca
Warning: JAVA_HOME environment variable is not set.
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building auth 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ auth ---
[WARNING] The POM for org.apache.maven:maven-core:jar:2.0.6 is missing, no dependency information available
[WARNING] The POM for org.apache.maven:maven-monitor:jar:2.0.6 is missing, no dependency information available
[WARNING] The POM for org.codehaus.plexus:plexus-utils:jar:2.0.5 is missing, no dependency information available
[WARNING] The POM for org.apache.maven.shared:maven-filtering:jar:1.1 is missing, no dependency information available
[WARNING] The POM for org.codehaus.plexus:plexus-interpolation:jar:1.13 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.882 s
[INFO] Finished at: 2019-07-12T07:02:23+00:00
[INFO] Final Memory: 13M/174M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.6:resources (default-resources) on project auth: Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin:2.6:resources failed: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: The following artifacts could not be resolved: org.apache.maven:maven-plugin-api:jar:2.0.6, org.apache.maven:maven-project:jar:2.0.6, org.apache.maven:maven-profile:jar:2.0.6, org.apache.maven:maven-artifact-manager:jar:2.0.6, org.apache.maven:maven-repository-metadata:jar:2.0.6, org.apache.maven:maven-plugin-registry:jar:2.0.6, org.apache.maven:maven-core:jar:2.0.6, org.apache.maven:maven-artifact:jar:2.0.6, org.apache.maven:maven-settings:jar:2.0.6, org.apache.maven:maven-model:jar:2.0.6, org.apache.maven:maven-monitor:jar:2.0.6, classworlds:classworlds:jar:1.1-alpha-2, org.codehaus.plexus:plexus-utils:jar:2.0.5, org.apache.maven.shared:maven-filtering:jar:1.1, org.codehaus.plexus:plexus-interpolation:jar:1.13: Cannot access central (https://repo.maven.apache.org/maven2) in offline mode and the artifact org.apache.maven:maven-plugin-api:jar:2.0.6 has not been downloaded from it before. -> [Help 1

推荐答案

尝试执行以下mvn命令,它使我免于maven错误.

Try following mvn commands, it saved me from the maven error.

RUN  mvn --batch-mode --errors --strict-checksums --threads 1C \
     org.apache.maven.plugins:maven-dependency-plugin:3.0.2:go-offline

RUN  mvn --batch-mode --errors --offline package

这篇关于使用Docker和Kotlin缓存Maven的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆