8
|
Justin Searls · 技术社区 · 15 年前 |
1
17
简短回答: 不 没有简单的maven方法可以做到这一点,因为这违背了maven规则,即“每个项目一个工件”(理解每个项目一个输出,在99%的情况下是正确的)。
实际上,我强烈建议
不
走老路,忘了用装配来制造耳朵。相反,创建两个模块,一个模块的包装类型为
如果你选择Maven,采用Maven的哲学,不要与之抗争,它会为你节省很多痛苦。说真的,黑客程序集做的Maven EAR插件已经做的只是防干。在这种情况下,你最好还是坚持蚂蚁。 |
2
2
在Maven中,每个项目都产生一个算术运算。在您的情况下,我建议创建两个项目,一个用于战争,一个用于EAR。如果您需要项目的多个版本,可以使用分类器和概要文件来实现。 这是richfaces示例pom的摘录。
在您的EAR中,pom使用概要文件导入所需的依赖项和适当的分类器。
|
3
2
我知道这已经5岁了,但这仍然是我搜索的第一个答案。另外,虽然“这不是特立独行的方式”对一些人来说是一个完全合理的答案,但其他人可能仍然喜欢使用一个单一的POM作为OP的要求,而且它并没有那么复杂。 首先,创建一个标准的war pom.xml来生成您想要包含在EAR中的war文件。把包装当成战争。 然后使用war文件名的占位符编写自己的application.xml(在src/main/application或任何位置):
并在同一位置包含任何其他特定于服务器的XML文件(weblogic-application.xml等)。 接下来,添加一个资源部分,用war文件名替换占位符:
最后,添加一个Ant EAR任务来构建EAR:
就是这样。 |