由于传递依赖关系,我的战争被xml-apis和xerces jar填充。我尝试按照参考页上有关maven-war- plugin的说明进行操作,但是它不起作用。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <packagingExcludes>WEB-INF/lib/xalan-2.6.0.jar,WEB-INF/lib/xercesImpl-2.6.2.jar,WEB-INF/lib/xml-apis-1.0.b2.jar,WEB-INF/lib/xmlParserAPIs-2.6.2.jar</packagingExcludes> <webXml>${basedir}/src/main/webapp/WEB-INF/web.xml</webXml> <warName>project1</warName> <warSourceDirectory>src/main/webapp</warSourceDirectory> </configuration> </plugin>
我究竟做错了什么 ?如果很重要,我发现我正在使用的maven-war-plugin版本为2.1-alpha-1
您可以将这些依赖项标记为已提供:
<dependency> <groupId>xerces</groupId> <artifactId>xerces</artifactId> <version>2.4.0</version> <scope>provided</scope> </dependency>
这样,maven会将它们添加到编译类路径中,但不会打包它们。假定它们存在于您的servlet容器中。
查看更多关于Maven范围在这里下的“范围”
编辑 如果要删除通过传递依赖项添加的类,则可以将其从依赖项中排除,如下所示:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> <version>2.5.6</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency>
在这里查看更多