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

时间:2015-09-11 07:45:00

标签: java maven deployment build ear

我的EAR项目结构如下:

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

我想在我的内置MyEar.ear中获取Earcontent / lib文件夹中的所有jar。 我在我的pom.xml中将defaultLibBundleDir作为'lib'。所以我想在MyEar.ear / lib文件夹中获取Earcontent / lib中的所有jar。

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

但是现在当我构建耳朵时,整个耳朵里面的lib文件夹都缺失了。

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

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

由于我正在使用maven,我想在maven中使用等效的

1 个答案:

答案 0 :(得分:0)

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