1

我在我的 WEB 项目中放置了第三方 jar/src/main/webapp/WEB-INF/lib/

我已经在pom.xml中提到了所有必需JAR 的依赖关系。现在,由于在 POM 中定义了依赖项,因此 JAR 将自动打包到文件夹中。lib

  • 我想排除lib.
  • 在构建 WAR 时,依赖项 JAR 应该打包在 lib 中

LIB我不能从 WEB-INF 中删除,因为它用于本地开发

这是我迄今为止尝试过的:

<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>

任何想法?

4

3 回答 3

6

它应该是“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

于 2012-09-16T16:44:40.863 回答
2

尝试这个:

<configuration>
    <warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes>
    ....
</configuration>

但是,我同意 Jarrod 的观点,即WEB-INF/lib“手动”存储罐子是不好的做法。我以前使用它来避免将 jar 作为依赖项打包,以便之后能够重新打包它。

于 2011-05-10T15:35:26.253 回答
1

你的WEB-INF/lib目录中不应该有任何东西。如果您使用的是 Eclipse,您可以告诉它从 构建它的项目pom.xml,它会知道查找~/.m2/repository依赖项,Intellij IDEA 也这样做。将依赖项置于WEB-INF/lib某种意义上违背了使用 Maven 进行依赖项管理的目的。当版本中的依赖pom.xml项与版本中的依赖项不同步时会发生什么WEB-INF/lib

于 2011-05-10T15:44:15.540 回答