Spring 从maven依赖项中排除类

Spring 从maven依赖项中排除类,spring,maven,spring-mvc,jersey,jersey-2.0,Spring,Maven,Spring Mvc,Jersey,Jersey 2.0,我使用它将Springbean注入Jersey JAX-RS资源类。Bean注入工作正常,除了这个jar还包含直接干扰我自己的自定义WebApplicationInitializer的类。出于测试目的,我在调试模式下强制取消了初始化,我的应用程序运行正常 我还尝试了maven shade插件的以下配置 <plugin> <artifactId>maven-shade-plugin</artifactId> <version>2.4.

我使用它将Springbean注入Jersey JAX-RS资源类。Bean注入工作正常,除了这个jar还包含直接干扰我自己的自定义WebApplicationInitializer的类。出于测试目的,我在调试模式下强制取消了初始化,我的应用程序运行正常

我还尝试了maven shade插件的以下配置

<plugin>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.4.1</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <filters>
                    <filter>
                        <artifact>org.glassfish.jersey.ext:jersey-spring3</artifact>
                        <excludes>
                            <exclude>org/glassfish/jersey/server/spring/SpringWebApplicationInitializer.class</exclude>
                        </excludes>
                    </filter>
                </filters>
            </configuration>
        </execution>
    </executions>
</plugin>

maven阴影插件
2.4.1
包裹
阴凉处
org.glassfish.jersey.ext:jersey-spring3
org/glassfish/jersey/server/spring/SpringWebApplicationInitializer.class

这个插件将JAR和类复制到WAR文件中。因此,即使删除了SpringWebApplicationInitializer.class,原始jar(仍包含SpringWebApplicationInitializer.class)也被复制,SpringServletContainerInitializer仍在拾取SpringWebApplicationInitializer类。

“Bean注入工作正常预期”->您是说“Bean注入工作正常,除了”?“但是除了SpringWebApplicationInitializer.Class之外,我的app.war中仍然复制了所有JAR以及所有类文件。”有什么问题吗?你排除了这个文件,然后“抱怨”“它不在jar中。对不起,我的英语不好,我的意思是,即使该类在未压缩版本中被删除,原始jar仍被复制到包含该类的war文件中,因此SpringServletContainerInitializer仍在拾取该类。无需道歉:)只需正确理解问题。如何构建war文件(是否可以在问题中添加相应的pom.xml部分)?如果您想在war中隐藏某些内容,则需要使用shade插件组装war…以下是我的pom.xml: