【问题标题】:How to exclude jars from ear如何从耳朵中排除罐子
【发布时间】:2012-03-19 00:11:22
【问题描述】:

我正在从 WAR 文件中捆绑 EAR。 JARS 被放置在 WARFile/WEB-INF/lib 文件夹以及 EARFile/lib 文件夹中,有重复。

尽管在 WARFile/WEB-INF/lib 中,我们是否还需要 EARFile/lib 文件夹中的 JARS?

如果我们不需要在EAR/lib 文件中,我们如何删除它们?由于 WAR 和 EAR 中都存在重复的 JAR,EAR 文件的大小变成了两倍。

请帮帮我。

谢谢

【问题讨论】:

  • 能不能展示一下ear projects pom的相关部分?你在ear项目中声明了除了war之外的任何依赖吗?

标签: maven maven-2 maven-plugin maven-3


【解决方案1】:

关于“瘦身”战争的好书。基本上,你把罐子放在耳朵里,而不是战争文件:

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

【讨论】:

  • Michael 的回答帮助我从 WAR/WEB-INF/lib 中删除了 jars,并且只在 EARFile/lib 中。我们在 EARFile/lib 中有库有什么问题吗?谢谢
  • 我没有看到以这种方式使用耳朵的任何错误。唯一遇到问题的情况是,如果您尝试在耳外独立使用其中一个战争文件。那是行不通的,因为你在战争中没有罐子。如果您需要...只需构建 2 个工件,一个用于“瘦”战争,一个用于全面战争。并且只包括你耳边的“瘦”战。
【解决方案2】:

您必须通过以下方式定义对您的战争项目的依赖:

<dependency>
  <groupId>${project.groupId}</groupId>
  <artifactId>xyz-web</artifactId>
  <version>${project.version}</version>
  <type>war</type>
</dependency>

此外,您还必须像下面这样配置 ear 插件:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ear-plugin</artifactId>
    <configuration>
      <version>6</version>
      <modules>
        <!-- Register our War as a web module, and set the context root -->
        <webModule>
          <groupId>${project.groupId}</groupId>
          <artifactId>xyz-web</artifactId>
          <contextRoot>/xyz</contextRoot>
        </webModule>
      </modules>
    </configuration>
  </plugin>

【讨论】:

  • 我已经在 WAR pom.xml 和 EAR pom.xml 中完成了上述配置
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-04
  • 1970-01-01
  • 2014-04-10
  • 2012-11-17
  • 1970-01-01
  • 2011-09-11
  • 1970-01-01
相关资源
最近更新 更多