【发布时间】:2015-09-18 14:58:38
【问题描述】:
我已经在 pom.xml 中提到了所有必需 JAR 的依赖关系。现在,由于在 POM 中定义了依赖项,JAR 将自动打包到 lib 文件夹中。
我想排除项目源中存在的库中的所有 JAR。 在构建 WAR 时,依赖项 JAR 应该打包在 lib 中
我正在使用包装排除标签,以排除本地罐子。但它排除了打包的war文件中的所有jar。我想只包含 maven 依赖项。
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<warName>${war.name}</warName>
<webResources>
<resource>
<directory>config</directory>
<targetPath>WEB-INF/classes</targetPath>
<directory>${maven.lib.dir}</directory>
<targetPath>WEB-INF/lib</targetPath>
</resource>
</webResources>
<archive>
<manifestEntries>
<Built-Date>${maven.build.timestamp}</Built-Date>
</manifestEntries>
</archive>
<packagingExcludes>META-INF/*.xml</packagingExcludes>
<packagingExcludes>WEB-INF/*lib/</packagingExcludes>
</configuration>
</plugin>
我可以通过在 excludes 标记中指定名称来排除几个 jar。但是我有太多的罐子要明确写在排除标签下
<packagingExcludes>
WEB-INF/lib/commons-logging-*.jar,
%regex[WEB-INF/lib/log4j-(?!over-slf4j).*.jar]
</packagingExcludes>
我需要一些配置,我可以在其中排除整个文件夹。
【问题讨论】:
-
为什么不直接删除 lib 文件夹? Maven 会在构建时为您添加它们,对于 IDE 解析,您应该使用 WTP-M2E 连接器到 Eclipse 中的 M2E 插件,将它们添加到项目库中。
-
我无法删除 lib 文件夹。因为我正在处理一个遗留项目。只有在 maven 构建稳定后,我才会删除 lib 文件夹。
-
您是否尝试过官方文档:maven.apache.org/plugins/maven-war-plugin/examples/… 页面中的第一个示例
-
我可以通过在 excludes 标签中指定名称来排除几个罐子。但是我有太多的罐子要明确写在排除标签下。
-
但是此页面上的第一个示例排除了 WEB-INF/lib 中的所有 jar,即:
WEB-INF/lib/*.jar。*是替换 jar 名称的通配符。