我正在尝试从依赖项中删除一些类。我尝试在 pom.xml 文件中使用以下配置,但它不起作用。这些类仍然存在于胖罐子中。谁能帮我解决这个问题吗?
我想他们可能在
compile
时间内出现,所以我尝试了 package
但他们仍然存在。
我的目的是从
Event
依赖项中删除 BaseEvent
和 models
类。
<?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.18</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>org.mua.dev</groupId>
<artifactId>learn</artifactId>
<version>1.0.5</version>
<name>Learn</name>
<description>Learning Maven</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
...
<dependency>
<groupId>org.mua.dev</groupId>
<artifactId>models</artifactId>
<version>1.6.8</version>
</dependency>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>UTF-8</encoding>
<compilerArgs>
<arg>-XDcompilePolicy=simple</arg>
<arg>-Xplugin:ErrorProne -XepOpt:NullAway:AnnotatedPackages=org.mua</arg>
</compilerArgs>
<annotationProcessorPaths>
<path>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>2.23.0</version>
</path>
<path>
<groupId>com.uber.nullaway</groupId>
<artifactId>nullaway</artifactId>
<version>0.10.15</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>org.mua.dev:models</artifact>
<excludes>
<exclude>org/mua/dev/models/Event.class</exclude>
<exclude>org/mua/dev/models/BaseEvent.class</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>util</id>
<url>https://nexus.mua.test.mydomain.bd/repository/mua/</url>
</repository>
</repositories>
</project>
如果我们可以专门包含我想要包含的类,它甚至对我有用。假设我想保留以下结构中的所有
dto
并删除所有 entity
类,特别是 EventEntity
类。
models
- dto
- EventDto
- SomeOtherDto
- AnotherDto
- YetAnotherDto
- entity
- EventEntity
- SomeOtherEntity
- AnotherEntity
- YetAnotherEntity
任何帮助将不胜感激。预先感谢。
确保
<exclude>
中的类路径正确或
<include>
Maven Shade 插件配置部分。
确保 maven-shade-plugin 已安装 在构建生命周期中的其他所有事情之后执行(特别是 在打包阶段)。
尝试清理并重建项目以 删除可能仍包含这些类的任何旧工件:
mvn clean package
使用以下命令检查 jar 并确保仅包含预期的类:
jar -tf <your-jar-file>