java - 如何排除 maven war 插件生成的 jars?

标签 java maven-2

由于传递依赖关系,我的 war 被 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

最佳答案

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

<dependency>
  <groupId>xerces</groupId>
  <artifactId>xerces</artifactId>
  <version>2.4.0</version>
  <scope>provided</scope>
</dependency>

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

查看更多关于 maven 作用域的信息 here在“范围”下

编辑 如果你想删除通过传递依赖添加的类,你可以像这样从依赖中排除它们:

<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

关于java - 如何排除 maven war 插件生成的 jars?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1031695/

相关文章:

java - 使用什么框架来引导我的第一个生产 Scala 项目?

maven-2 - 如何只构建一个带有分类器的 JAR 文件?

java - 在 Windows 服务器中运行可执行 jar

java - 如何使 logging.properties 和 commons-logging.properties 属性文件工作?

java - 如何在 GC 内绘制旋转文本

java - maven如何设置为不需要 `mvn`命令的目标?

java - 无法在 Maven2 中导入 Commons DbUtils

java - SonarQube 在 Spring Framework Controller 和 Spring Framework 应用程序主类中显示安全错误

java - Landroid/widget/ImageView 类中没有字段 mMaxWidth

eclipse - 如何在 Eclipse 控制台中获取 Maven 的详细输出?