我有一个有2个依赖项的maven3 webapp(war)项目。一个是jar(ehcache),另一个是war依赖(我无法控制的第三方lib)。
第三方战争依赖关系依赖于早期版本的ehcache,它与我需要使用的更高版本冲突。
在我的应用包中发生以下步骤。
无论我做什么,战争总是包括早期版本的ehcache。我甚至尝试编写一个ant脚本,我通过maven-antrun-plugin执行该脚本,从目标目录中删除.jar文件。但是,这总是在覆盖.war依赖关系之前完成。
有谁知道如何排除/删除早期版本的ehcache?
答案 0 :(得分:8)
您可能需要从叠加层中按文件名排除ehcache jar。如果您尚未为自己的战争声明明确的叠加层,那么在war插件配置中也必须这样做:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<overlays>
<overlay>
<groupId>your.thirdparty.war.groupId</groupId>
<artifactId>your.thirdparty.war.artifactId</artifactId>
<excludes>
<exclude>WEB-INF/lib/ehcache*.jar</exclude>
</excludes>
</overlay>
</overlays>
</configuration>
</plugin>
</plugins>
</build>
答案 1 :(得分:-1)