spring-boot - 在 mvn 依赖项后运行 mvn -o clean package 时缺少依赖项:在创建 docker 映像时脱机
问题描述
我正在使用 maven:3.8.2-adoptopenjdk-15 映像为我的应用程序构建映像。
# Build stage
#
FROM maven:3.8.2-adoptopenjdk-15 AS Build
COPY src /home/app/src
COPY pom.xml /home/app
RUN mvn -f /home/app/pom.xml dependency:go-offline
RUN mvn -f /home/app/pom.xml -o clean package
#
# Package stage
#
FROM adoptopenjdk/openjdk15
COPY --from=Build /home/app/target/mango-0.0.1-SNAPSHOT.jar /usr/local/lib/mango.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/usr/local/lib/mango.jar"]
这是 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.fruits</groupId>
<artifactId>mango</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mango</name>
<description>Mango is delicious</description>
<properties>
<java.version>16</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Add Log4j2 Dependency -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.zalando</groupId>
<artifactId>problem-spring-web</artifactId>
<version>0.23.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<!-- <dependency>-->
<!-- <groupId>org.apache.logging.log4j</groupId>-->
<!-- <artifactId>log4j-core</artifactId>-->
<!-- <version>2.14.1</version>-->
<!-- </dependency>-->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>14</source>
<target>14</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
这是日志:
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11:50 min
[INFO] Finished at: 2021-10-03T12:24:13Z
[INFO] ------------------------------------------------------------------------
Removing intermediate container 29451ca8eee0
---> 4d3a862e9b50
Step 5/9 : RUN mvn -f /home/app/pom.xml -o clean package
---> Running in d3e4eb87c567
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------------< com.fruits:mango >--------------------------
[INFO] Building mango 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[WARNING] The POM for org.jboss.logging:jboss-logging:jar:3.4.2.Final is missing, no dependency information available
[WARNING] The POM for org.glassfish.jaxb:jaxb-runtime:jar:2.3.4 is missing, no dependency information available
[WARNING] The POM for org.springframework:spring-orm:jar:5.3.8 is missing, no dependency information available
[WARNING] The POM for net.minidev:json-smart:jar:2.4.7 is missing, no dependency information available
[WARNING] The POM for net.bytebuddy:byte-buddy-agent:jar:1.10.22 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.447 s
[INFO] Finished at: 2021-10-03T12:24:17Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project mango: Could not resolve dependencies for project com.fruits:mango:jar:0.0.1-SNAPSHOT: The following artifacts could not be resolved: org.jboss.logging:jboss-logging:jar:3.4.2.Final, org.glassfish.jaxb:jaxb-runtime:jar:2.3.4, org.springframework:spring-orm:jar:5.3.8, org.springframework:spring-tx:jar:5.3.8, net.minidev:json-smart:jar:2.4.7, net.bytebuddy:byte-buddy-agent:jar:1.10.22: Cannot access central (https://repo.maven.apache.org/maven2) in offline mode and the artifact org.jboss.logging:jboss-logging:jar:3.4.2.Final has not been downloaded from it before. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
The command '/bin/sh -c mvn -f /home/app/pom.xml -o clean package' returned a non-zero code: 1
第一个BUILD SUCCESS
是用于RUN mvn -f /home/app/pom.xml dependency:go-offline
(记录下载依赖项,所以我不复制它)
但是当我构建图像时,在“mvn -f /home/app/pom.xml -o clean package”步骤中,它显示一个错误,我缺少一些未包含在我的 pom.xml 中的依赖项。我在计算机上测试了这些 maven 命令并且它工作正常,当我从上面的 Dockerfile 构建图像时就会出现问题。
有谁能给我指点一下,谢谢。
解决方案
推荐阅读
- angular - PrimeNG 表扩展触发所有行组件
- php - 为什么这段代码不能正确解析答案?
- javascript - 如何用正则表达式替换整个文本中的某些符号,除了引用的文本
- amazon-web-services - 无法通过 lambda 将记录放入 kinesis
- makefile - binutils构建过程中makefile出错
- android - 是否可以设置要识别的文本的字体样式?
- qemu - qemu 中不支持的 ioctl 调用
- node.js - Electron:安全地存储值
- angular - 带有子路由的 Angular 6 多路由出口
- java - 我正在处理一个在启动屏幕后关闭且未加载下一个活动的应用程序