将Maven中的多模块项目构建为一个war文件

时间:2012-03-23 19:12:44

标签: maven

我之前已经问过我的问题,我知道,但我认为我正在尝试做一些稍微不同的事情,现有的答案是不合适的。

基本上,我确实希望在Eclipse中有多个项目(最好)构建到一个最终的WAR文件中。理想情况下是这样的:

root - pom.xml
|___ java-app
|___ web-service-v1
|___ web-service-v2
|___ web-service-v3
|___ rest-service
|___ batch-service

想象Java App作为实际应用程序,每个附加组件作为Java App本身的解耦视图层运行。最终,Java应用程序将在tomcat实例中运行,不同的模块提供其服务。我希望所有不同的模块也能在同一个Spring容器中运行。

我不知道在Maven模块中运行是最好的方法,但我真的更愿意将每个组件放在一个单独的Eclipse项目中,最终将它们组合在一起。

任何人都可以提供有关如何使用Maven构建此内容的任何建议吗?

3 个答案:

答案 0 :(得分:7)

只需制作一个单独的战争模块:

root - pom.xml (packaging: pom!!!)
|___ java-app
|___ web-service-v1
..
+--- mod-war (pom.xml)

并将您希望添加到war文件中的模块的依赖项放入pom中,就是这样。

答案 1 :(得分:2)

主要的Maven想法是每个模块必须产生一个构建工件(例如jar或war文件)。父pom通常负责全局配置和依赖关系管理以及适当的模块编排。如果您的最终结果需要是WAR文件,则列表中的最后一个模块将是Web应用程序。其他模块可以提供war文件所依赖的类。

有更复杂的构建结构,但上面的内容应该足够了。

答案 2 :(得分:1)

这有点过时了,但希望这些额外信息可以帮助某人。

@Mouscellaneous可以找到在每个模块中保留Spring配置并从web.xml引用它们的示例here in the Sonatype book。我想这就是你要找的东西。

PS:抱歉,我不得不将此作为新答案添加。我想我没有足够的积分来回应其他答案。