Java 如何在一个Maven项目中打包多个WAR文件?

Java 如何在一个Maven项目中打包多个WAR文件?,java,maven-2,servlets,packaging,war,Java,Maven 2,Servlets,Packaging,War,我正在编写一个与定制组件集成的应用程序,该组件将托管在单个servlet引擎上。这两个都是基于Maven的项目,我想留在Maven land,将其打包成一个很好的可分发应用程序。我的总体想法是在我的应用程序中添加另一个模块,将应用程序本身、Geoserver和所有依赖项打包到一个漂亮的归档中 我知道maven assembly插件及其在目标文件夹中存储所有依赖项的能力,但我不确定创建易于部署的包的最佳方法是什么。谷歌搜索任何例子都没有成功 如果模块可以通过mvn jetty:run启动,则可获得

我正在编写一个与定制组件集成的应用程序,该组件将托管在单个servlet引擎上。这两个都是基于Maven的项目,我想留在Maven land,将其打包成一个很好的可分发应用程序。我的总体想法是在我的应用程序中添加另一个模块,将应用程序本身、Geoserver和所有依赖项打包到一个漂亮的归档中

我知道maven assembly插件及其在目标文件夹中存储所有依赖项的能力,但我不确定创建易于部署的包的最佳方法是什么。谷歌搜索任何例子都没有成功


如果模块可以通过mvn jetty:run启动,则可获得额外的奖励积分。

您是否考虑过将其打包到项目中。它将捆绑一组WAR和JAR,并允许您指定或生成部署描述符。

您可以使用jboss:deploy获得与jetty相同的效果:run@sal,完全一样吗?我认为jboss:deploy正在打包ear,以便通过JMX交付到现有的jboss服务器,而jetty:run使用当前项目运行嵌入式jetty实例。@sal:jetty:run的好处是,您可以启动应用程序而不依赖任何外部服务器组件。这意味着没有额外的部署问题,也没有访问权限的管理,这很方便,例如手动和自动的功能测试。@Rich:到目前为止已经避免了EAR,但您可能是对的。我将对此进行研究。实际上,我认为使用Cargo插件管理Servlet引擎要容易得多,它允许您在一个引擎中运行deploy multiple WARs(部署多场战争),该引擎以Maven目标为起点。既然这不是我的问题,即使它应该是,我会接受里奇的答案-我相信他是正确的,但我还没有测试它。为什么你不确定的汇编插件?这似乎是你最好的选择。