Java 使用Maven2构建现有EAR

Java 使用Maven2构建现有EAR,java,maven-2,build,ear,rebuild,Java,Maven 2,Build,Ear,Rebuild,它是关于使用包含多个模块的maven构建现有EAR的。 我们有一个EAR项目,其中包含web和jar项目,共有8个项目。 ear是使用RAD构建的,因此目前该项目的非成员都有POM文件。 现在我想在项目中使用maven。 我想使用m2eclipse来创建POM和构建。 计划创建父项目并在其下创建模块,包括ear项目和其他项目。 因此,有效结构应如下所示 工作空间 >parent proj >ear project >web pr

它是关于使用包含多个模块的maven构建现有EAR的。 我们有一个EAR项目,其中包含web和jar项目,共有8个项目。 ear是使用RAD构建的,因此目前该项目的非成员都有POM文件。 现在我想在项目中使用maven。 我想使用m2eclipse来创建POM和构建。 计划创建父项目并在其下创建模块,包括ear项目和其他项目。 因此,有效结构应如下所示

工作空间

   >parent proj

          >ear project

          >web proj

          >jar1 proj

          >jar2 proj
 >web proj

 >jar1 proj

 >jar2 proj
但我有一个包含所有项目的ear文件,如果我在工作空间中导入ear,它会为所有项目创建平面结构,如下所示

工作空间

   >parent proj

          >ear project

          >web proj

          >jar1 proj

          >jar2 proj
 >web proj

 >jar1 proj

 >jar2 proj
这是因为RAD项目设置和它在工作区中创建的.metadata文件。 若我在工作区中创建父项目,然后在父项目中导入ear,那个将是一个问题。 请告知我如何才能做到以下几点

1> 添加父项目的间接寻址,并在其下方包含所有ear中的项目

2> 如何在构建时保存所有模块的父级下添加ear项目

希望我的情况和要求是明确的 请提出建议

谢谢
narayan

您不必将ear导入父项目,父项目只需在其pom中将ear作为模块引用,并显示为父项目中的子目录。
也许我不清楚你所说的进口是什么意思。
在父pom中声明模块的顺序是它们的构建顺序,因此ear应该是列表中的最后一个模块,因为它将jar1、jar2和web模块作为依赖项。
web应该是列表中的第二个模块,因为它可能依赖于jar1或jar2或两者

M2Eclipse能够导入多模块项目结构,您在工作区中将其描述为单独的项目,选择此选项可以避免您必须通过父项目处理每个单独的模块并一直向下扩展。
这并不会改变磁盘上的嵌套结构,它只是将每个模块表示为它们自己的项目,并且在父项目中也可以看到模块目录。
它还允许单独构建每个模块,或者通过构建父项目来执行完整的构建

阅读有关maven反应堆的文章

我建议在处理主要项目之前,先尝试一下快速原型,请参见

Matt Raible的appfuse原型是非常好的示例,请尝试以下命令创建骨架结构:

mvn org.apache.maven.plugins:maven原型插件:2.0:generate-DgroupId=com.test.archetest-DartifactId=archetest-DarchetypeArtifactId=appfuse modular jsf-DarchetypeGroupId=org.appfuse.archetypes

查看一般项目结构,然后使用M2Eclipse导入它,它将生成eclipse项目文件。。 您也可以通过
mvneclipse:eclipse
实现这一点,但这不会在您的工作区中为您提供单独的模块。 一些项目选择不提交eclipse项目文件,而是通过上述任一方法从pom生成

如果使用上述原型中的结构,则需要向父项目添加ear模块,这可以通过M2Eclipse完成。

谢谢@crowne

我可以使用模块方法代替层次结构

要包装所有现有项目,请在同一工作区中创建一个打包类型为pom的maven项目 然后可以将现有项目添加为模块,如下所示

../module1

../module2

../module3


指定的路径总是相对于pom的位置,在pom中声明模块。

请在下面添加1>maven reactor不负责构建顺序2>通过导入我的意思是,我有一个打包的ear,其中包含所有源项目…我可以在工作区中导入,并将pom添加到所有项目中。。我想把父母添加到所有这些项目中,我如何才能做到这一点。