由于可传递的依赖关系,我的wars中充斥着xml-apis、xerces jars。我尝试按照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
发布于 2009-06-23 10:21:38
您可以将这些依赖项标记为已提供:
<dependency>
<groupId>xerces</groupId>
<artifactId>xerces</artifactId>
<version>2.4.0</version>
<scope>provided</scope>
</dependency>这样,maven会将它们添加到编译类路径中,但不会对它们进行打包。假设它们存在于您的servlet容器中。
有关maven scope here的更多信息,请参阅"scope“
编辑如果要删除通过传递依赖项添加的类,可以将其从依赖项中排除,如下所示:
<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>(摘自this answer)
查看更多here
发布于 2009-06-23 10:27:30
我修好了。
再仔细阅读一下参考资料,我发现元素packagingExcludes应该是warSourceExcludes.
发布于 2010-05-25 17:26:55
关于传递依赖的排除,我认为不要使用传递依赖的传递,我认为情况可能是这样的。
例如,添加hibernate-core -> dom4j -> xml-api的依赖如果添加hibernate核心附近的xml-api的排除,仍然添加xml-api...
https://stackoverflow.com/questions/1031695
复制相似问题