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

发布于 2024-11-06 12:45:37 字数 957 浏览 1 评论 0原文

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

我已经提到了所有必需 JAR 的依赖关系pom.xml。 现在,由于依赖项是在 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>

有什么想法吗?

I have the third party jar's in my WEB project placed at /src/main/webapp/WEB-INF/lib/

I have mentioned the dependency for all the required JAR's in the pom.xml.
Now, Since the dependencies are defined in POM, the JAR's will be automatically packed in the lib folder.

  • I want to exclude all the JAR's in the lib.
  • The Dependency JAR's should be packaged inside the lib while building the WAR

I CANT DELETE THE LIB FROM WEB-INF BECAUSE ITS USED IN LOCAL DEVELOPMENT

This is what I've tried so far:

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

Any Idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

懵少女 2024-11-13 12:45:37

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

It should be "packagingExcludes" instead of "warSourceExcludes":

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

From http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html :

In version 2.1-alpha-1, this was incorrectly named warSourceExcludes

浪荡不羁 2024-11-13 12:45:37

尝试一下:

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

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

Try this:

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

However, I do agree with Jarrod that it is bad practice to store your jars in WEB-INF/lib 'manually'. I used this before to avoid that jars coming as a dependency got packaged to be able to repackage it afterwards.

你爱我像她 2024-11-13 12:45:37

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

you shouldn't have anything in your WEB-INF/lib directory to begin with. If you are using Eclipse, you can tell it to build its project from the pom.xml and it will know to look in ~/.m2/repository for dependencies, Intellij IDEA does this as well. Putting dependencies in WEB-INF/lib kind of defeats the purpose of using Maven for dependency management. What happens when the dependencies in the pom.xml get out of sync version wise with those in WEB-INF/lib

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文