我有 2 个基于相同父 maven pom.xml 的不同 JAVA 11 子项目。
第一个是从一开始就为 Maven 设置了Spring 初始化程序,而第二个最初是在没有 SpringBoot 的情况下设置的。
第二个让我头疼,因为它缺少一些依赖项(JAI,JPEG2000),这些依赖项位于父 pom.xml 中,并且很好地包含在第一个使用 Spring maven 插件打包应用程序的项目中,但没有包含在第二个项目中。
这就是我决定将第二个项目转移到 SpringBoot 的原因。但是它仍然缺少与以前相同的依赖关系,当我打印加载的类时它仍然显示:(/home/path/to/netbeans/java/maven/boot/plexus-classworlds-2.6.0.jar
我使用的是 Netbeans 12)而第一个项目列出了所有加载的 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>My.Package</groupId>
<artifactId>PyProg</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>My prog Name</name>
<description>SpringBoot version of My Prog</description>
<parent>
<artifactId>MySuperParent</artifactId>
<groupId>My.Package</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<!--Uses a different parent than Spring Boot one see https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-maven-without-a-parent-->
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.16.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>My.Package</groupId>
<artifactId>Base</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11.0.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11.0.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
<version>${junitVersion}</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.2</version>
<type>maven-plugin</type>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<!--Resource folder that should be included-->
<directory>src/main/resources</directory>
<!--Resources that should not-->
<excludes>
<exclude>solo/**</exclude>
<exclude>forYourEyesOnly/**</exclude>
</excludes>
</resource>
</resources>
<plugins>
<!-- Package as an executable jar -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.16.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Plexus-classworlds 不在任何 pom 中,两个项目 pom 看起来很相似,因为我将第二个项目移至 SpringBoot,所以我怎样才能禁用plexus-classworlds并摆脱它,以便在 System.out.println(System.getProperty("java.class.path").replace(":","\n"));
从类路径获取加载的类时,我看到一个列表不是这个单一的 plexus-classworlds jar 吗?
我相信我可能在过去的某个时候搞砸了一些启用这个丛类世界的配置文件,但我不记得了。
我试图从 Netbeans 中删除这个 jar,但是没有一个项目启动。
那么有人可以告诉我如何摆脱类路径中显示的 plexus-classworlds.jar 吗?
任何提示表示赞赏!