如何使用 Maven 将目录中的所有 jar 包含到耳朵中?

How to include all jars in a directory to an ear using maven?

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

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

我想获取我构建的 MyEar.ear 中 Earcontent/lib 文件夹中的所有 jar。 我在 pom.xml 中将 defaultLibBundleDir 设为 'lib'。所以我想在 MyEar.ear/lib 文件夹中获取 Earcontent/lib 中的所有罐子。

 <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 中使用它的等价物

<defaultLibBundleDir><bundleDir> both 似乎与 Maven 工件一起工作。
但是,您似乎想要包含未声明为依赖项或未列为 <modules>.
的 jar 因此,您最好尝试通过配置 assembly.
来构建 .ear 文件 否则,您应该删除包含 jar 文件的 lib 目录,并在 POM 中声明所有依赖项。