从 webapp/WEB-INF/lib 中排除所有 jar



我在我的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中的依赖项版本不同步时会发生什么

情况

相关内容

  • 没有找到相关文章

最新更新