maven打包报错jdk.internal.org.xml.sax包不存在
原文地址:链接: springboot maven打包 mvn clean package 报错:程序包jdk.internal.org.objectweb.asm不存在
作者:无、涯
再次感谢原文大大
解决办法
在pom.xml中插入以下三个包的目录:
1 rt.jar
2 jce.jar
3 jsse.jar
这三个包的位置在%JAVA_HOME%/jre/lib内。比如我的rt.jar的位置在:
// rt.jar存放目录
C:\Program Files (x86)\java\jdk1.8.0_152\jre\lib\rt.jar
添加的代码为
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>libs</extdirs>
<!-- rt包没有打到项目中去 -->
<verbose />
<!-- C:/Program Files (x86)/java/jdk1.8.0_152 是我本地安装的jdk home目录,rt.jar等jar 我在 jdk home目录下的 /jre/lib/ 目录中有发现存在,你们需要注意确认自己的实际情况,Windows分隔符英文分号,linux分隔符英文冒号 -->
<bootclasspath>C:/Program Files (x86)/java/jdk1.8.0_152/jre/lib/rt.jar;C:/Program Files (x86)/java/jdk1.8.0_152/jre/lib/jce.jar;C:/Program Files (x86)/java/jdk1.8.0_152/jre/lib/jsse.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
完整的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.7.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo2</artifactId>
<version>1.0</version>
<name>demo2</name>
<description>demo2</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1.6</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.80</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.15</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>libs</extdirs>
<!-- rt包没有打到项目中去 -->
<verbose />
<!-- C:/Program Files/Java/jdk1.8.0_201 是我本地安装的jdk家目录,rt.jar等jar 我在 jdk家目录下的 /jre/lib/ 目录中有发现存在,你们需要注意确认自己的实际情况,Windows分隔符英文分号,linux分隔符英文冒号 -->
<bootclasspath>C:/Program Files (x86)/java/jdk1.8.0_152/jre/lib/rt.jar;C:/Program Files (x86)/java/jdk1.8.0_152/jre/lib/jce.jar;C:/Program Files (x86)/java/jdk1.8.0_152/jre/lib/jsse.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
</project>
到此就解决了我的问题,打包顺利完成
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 22.939 s
[INFO] Finished at: 2023-03-09T16:28:25+08:00
[INFO] ------------------------------------------------------------------------