我正在开发一个maven项目,我需要从war
文件中排除依赖项。以下是我的问题的详细信息。
我有一个项目A
,其war
包装取决于
<dependency>
<groupId>com.myCompany</groupId>
<artifactId>artifactB</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
我希望这个项目不会出现在最终的war
中。我不能用
<scope>provided</scope>
因为我需要artifactB
的传递依赖。我试图在包装阶段使用以下指令排除artifactB
:
<packagingExcludes>WEB-INF/lib/artifactB.jar</packagingExcludes>
但是当我运行mvn package
时,我会在jar
内找到war
。我做错了什么?
答案 0 :(得分:0)
试试这个。
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warName>your-war-name</warName>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>${basedir}/src/main/webapp/WEB-INF/lib</directory>
<excludes>
<exclude>artifactB*.jar</exclude>
</excludes>
</resource>
</webResources>
</configuration>
</plugin>
答案 1 :(得分:0)
我通过以下方式解决了我的问题:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<warSourceDirectory>${basedir}/WebRoot</warSourceDirectory>
<packagingExcludes>WEB-INF/lib/artifactB*</packagingExcludes>
</configuration>
而且我还注意到我只会在内置战争的WEB-INF / lib中看到这一点,而不是在瞬态战争目录中(包括被排除的jar,即使调试说它们被排除在外,这当时非常混乱)看这个问题)。