首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何排除maven war插件生成的war?

如何排除maven war插件生成的war?
EN

Stack Overflow用户
提问于 2009-06-23 10:12:40
回答 9查看 92.3K关注 0票数 41

由于可传递的依赖关系,我的wars中充斥着xml-apis、xerces jars。我尝试按照maven-war-plugin参考页面上的说明进行操作,但它不起作用。

代码语言:javascript
复制
<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

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-06-23 10:21:38

您可以将这些依赖项标记为已提供:

代码语言:javascript
复制
<dependency>
  <groupId>xerces</groupId>
  <artifactId>xerces</artifactId>
  <version>2.4.0</version>
  <scope>provided</scope>
</dependency>

这样,maven会将它们添加到编译类路径中,但不会对它们进行打包。假设它们存在于您的servlet容器中。

有关maven scope here的更多信息,请参阅"scope“

编辑如果要删除通过传递依赖项添加的类,可以将其从依赖项中排除,如下所示:

代码语言:javascript
复制
<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

票数 70
EN

Stack Overflow用户

发布于 2009-06-23 10:27:30

我修好了。

再仔细阅读一下参考资料,我发现元素packagingExcludes应该是warSourceExcludes.

票数 7
EN

Stack Overflow用户

发布于 2010-05-25 17:26:55

关于传递依赖的排除,我认为不要使用传递依赖的传递,我认为情况可能是这样的。

例如,添加hibernate-core -> dom4j -> xml-api的依赖如果添加hibernate核心附近的xml-api的排除,仍然添加xml-api...

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1031695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档