【问题标题】:Exclude all the jar's from webapp/WEB-INF/lib从 webapp/WEB-INF/lib 中排除所有 jar
【发布时间】:2012-09-17 00:44:40
【问题描述】:

我的 WEB 项目中的第三方 jar 位于 /src/main/webapp/WEB-INF/lib/

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

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

我无法从 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>

有什么想法吗?

【问题讨论】:

  • 没有理由让local development 使用这个lib 目录 Maven 在本地缓存所有内容,Eclipse、Idea 和 Netbeans 都知道如何从那里提取依赖项。如果您在 Tomcat webapps 目录中进行开发,那么这是一种糟糕的做法。 Maven 可以构建 war 文件并将其无缝部署到所有流行的 J2EE 容器。

标签: maven maven-war-plugin


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    试试这个:

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

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

    【讨论】:

    • 您可以尝试省略一些其他配置细节吗?只是为了测试?也许存在某种冲突,如果您单独使用该设置,它确实有效。
    【解决方案3】:

    您的WEB-INF/lib 目录中不应有任何内容。如果您使用的是 Eclipse,您可以告诉它从 pom.xml 构建它的项目,它会知道在 ~/.m2/repository 中查找依赖项,Intellij IDEA 也这样做。将依赖项放在WEB-INF/lib 中有点违背了使用 Maven 进行依赖项管理的目的。当pom.xml 中的依赖与WEB-INF/lib 中的依赖不同步时会发生什么

    【讨论】:

    • 是的,我知道在WEB-INF/lib 中有任何东西是不对的,但是我正在这里构建一个遗留项目,并且很难从这个位置删除库(本地开发会受到影响)
    • 处理遗留构建系统的第一步是支付技术债务并修复它以一步构建,您将立即受益,每个人都会在您之后也能从中受益,为公司节省金钱和时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2018-02-24
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    相关资源
    最近更新 更多