Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以使用什么maven插件来重构现有的EAR_Java_Maven_Ant_Dependencies - Fatal编程技术网

Java 我可以使用什么maven插件来重构现有的EAR

Java 我可以使用什么maven插件来重构现有的EAR,java,maven,ant,dependencies,Java,Maven,Ant,Dependencies,我有一个以前用Maven构建的耳朵。作为新验证过程的一部分,此EAR将首先上载(用于扫描目的)到第三方SAAS,然后再投入生产。但是,在上传EAR之前,必须修改内容/结构。我需要能够重新打包我的EAR,这样在WEB-INF/lib文件夹中只保留lib的一个子集;其余的可以移动到EAR中的任何其他位置(可以在根级别、子文件夹中、/lib子文件夹中,等等-war中以外的任何位置)。我知道EAR可能无法部署,但这是可以接受的 EAR |-lib \- shared1.jar \- shared2.

我有一个以前用Maven构建的耳朵。作为新验证过程的一部分,此EAR将首先上载(用于扫描目的)到第三方SAAS,然后再投入生产。但是,在上传EAR之前,必须修改内容/结构。我需要能够重新打包我的EAR,这样在WEB-INF/lib文件夹中只保留lib的一个子集;其余的可以移动到EAR中的任何其他位置(可以在根级别、子文件夹中、/lib子文件夹中,等等-war中以外的任何位置)。我知道EAR可能无法部署,但这是可以接受的

EAR
|-lib
 \- shared1.jar
 \- shared2.jar
|- WebApp1.war
 \- images
 \- WEB-INF
  \- lib
   \- lib1.jar
   \- lib2.jar
   \- lib3.jar
|- WebApp2.war
 \- images
 \- WEB-INF
  \- lib
   \- libA.jar
   \- libB.jar
   \- libC.jar
|- EJB1.jar
|- JarModule1.jar
本质上,我只需要在WEB-INF/lib文件夹中维护顶级依赖项的一个子集。将从WEB-INF/lib中删除任何可传递的依赖项

我可以使用ANT之类的工具来实现这一点,但是Maven世界中是否存在允许我实现这一点的东西?我想我需要使用maven依赖插件:unpack,但无法完全确定正确的配置

如果我只将我的EAR列为一个依赖项并将其解包,它将不会递归地解包


我想我唯一的选择就是用蚂蚁/常春藤来做这件事,但是我想看看是否有人有其他的创意可以让我留在Maven世界。

你可以通过Maven汇编插件做很多事情,或者你可以在ear的创建过程中使用Maven ear插件,并在创建过程中将内容提取到
lib
文件夹。@khmarbaise-我的过程需要从预先存在的耳朵,不幸的是在耳朵包装过程中没有。我还没有找到一种方法来分解EAR中包含的WAR文件。为此,请使用maven assembly插件。