我在我的WEB项目中放置了第三方jar,/src/main/webapp/WEB-INF/lib/
我已经提到了pom.xml中所有必需JAR的依赖关系。现在,由于依赖项是在 POM 中定义的,因此 JAR 将自动打包在 lib
文件夹中。
- 我想排除
lib
中的所有 JAR。 - 在构建 WAR 时,依赖项 JAR 应该打包在库内
我无法从 WEB-INF 中删除LIB
,因为它用于本地开发
这是我到目前为止尝试过的:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<packagingExcludes>META-INF/context.xml</packagingExcludes>
<webResources>
<resource>
<directory>src/main/webapp/WEB-INF/lib</directory>
<excludes>
<exclude>**/**</exclude>
</excludes>
</resource>
</webResources>
</configuration>
</plugin>
知道吗?
它应该是"packagingExcludes"而不是"warSourceExcludes":
<configuration>
<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
....
</configuration>
从 http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html :
在 2.1-alpha-1 版本中,这被错误地命名为 warSourceExcludes
试试这个:
<configuration>
<warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes>
....
</configuration>
但是,我确实同意 Jarrod 的观点,即"手动"将罐子存放在WEB-INF/lib
中是一种不好的做法。 我之前使用过这个来避免作为依赖项的 jar 被打包以便之后能够重新打包它。
你的WEB-INF/lib
目录中不应该有任何内容。如果你使用的是Eclipse,你可以告诉它从pom.xml
构建它的项目,它会知道在~/.m2/repository
中寻找依赖关系,Intellij IDEA也这样做。将依赖项放在WEB-INF/lib
会破坏使用 Maven 进行依赖项管理的目的。当pom.xml
中的依赖项与WEB-INF/lib
中的依赖项版本不同步时会发生什么