【问题标题】:How to include all jars in a directory to an ear using maven?如何使用 Maven 将目录中的所有 jar 包含到耳朵中?
【发布时间】:2015-12-07 16:52:47
【问题描述】:

我的EAR项目结构是这样的:

+- MyEar
|  +- Earcontent
|     +- lib
+-
+-
+- pom.xml 

我想在我构建的 MyEar.ear 中获取 Earcontent/lib 文件夹中的所有 jar。 我在 pom.xml 中将 defaultLibBundleDir 作为“lib”。所以我想在 MyEar.ear/lib 文件夹中获取 Earcontent/lib 中的所有 jars。

 <defaultLibBundleDir>lib/</defaultLibBundleDir>

我的 pom.xml 看起来像:

<build>
<plugins>
  <plugin>
    <artifactId>maven-ear-plugin</artifactId>
    <version>2.10.1</version>
    <configuration>
      <defaultLibBundleDir>lib/</defaultLibBundleDir> 
    </configuration>
  </plugin>
</plugins>

更新:我试过了

<plugins> <plugin> <artifactId>maven-ear-plugin</artifactId> <version>2.10.1</version> <configuration> <defaultLibBundleDir>lib/</defaultLibBundleDir> <packagingIncludes>${basedir}\EarContent\lib\*.jar</packagingIncludes> </configuration> </plugin>

但是现在我构建ear的时候,整个ear里面的lib文件夹都不见了。

我在 gradle build.gradle 中尝试了相同的场景。我们正在使用fileTree。

compile fileTree(dir: "../MyEar/EarContent/lib", includes: ['*.jar']);

因为我使用的是 maven,所以我想要一个在 maven 中的等价物

【问题讨论】:

  • 你最后是怎么实现的?

标签: java maven deployment build ear


【解决方案1】:

&lt;defaultLibBundleDir&gt; 和 &lt;bundleDir&gt; both 似乎适用于 maven 工件。
但是,您似乎想要包含未声明为依赖项或列为 &lt;modules&gt; 的 jar。
因此,您最好尝试通过配置 assembly 来构建 .ear 文件。
否则,您应该删除包含 jar 文件的 lib 目录并在 POM 中声明所有依赖项。

【讨论】:

  • 是的,我明白你的意思@crowne。实际上在lib目录中有很多jar。在 pom.xml 中添加每个 jar 作为依赖项既耗时又累人。有没有其他方法可以以某种简单的方式添加所有 jar,比如指定路径或类似的东西?
  • 我知道的唯一其他方法是配置自定义程序集。
猜你喜欢
  • 2016-11-21
  • 1970-01-01
  • 2014-02-05
  • 2011-09-06
  • 1970-01-01
  • 2021-07-25
  • 1970-01-01
  • 2018-01-04
  • 1970-01-01
相关资源
最近更新 更多