使用maven tomcat插件来部署在不同模块中生成的war

时间:2012-05-17 16:11:20

标签: tomcat maven

我有这个项目结构,我有一个父pom,包括让我们说moduleA,moduleB和moduleTest。

moduleA和moduleB各自产生一场战争,让我们说warA和warB。

我使用maven依赖插件将warA和warB复制到moduleTest中。 然后我想使用maven tomcat插件开始战争。

不幸的是,我有这两个困境: 如果我使用war标签声明moduleTest,那么tomcat插件会查找名为warTest的文件来启动tomcat,即使我明确地将webapp的路径指向warA或warB。我最终得到一个构建失败,说无法找到war文件

如果我使用jar的包标签声明moduleTest,那么tomcat插件仍然会查找warTest,但是没有看到它,并且最终记录,跳过非战争项目。

我已经读过,有可能欺骗maven war插件不会为模块产生一场战争,因此这会迫使tomcat接受我告诉它要接受的任何战争,但我无法让它工作。

以前有人必须这样做吗?


答案: 我结束了使用来自morbay的jetty maven插件,我现在可以选择任何war文件。 但是当我尝试执行运行目标时,我收到以下错误:

INFO: FrameworkServlet 'spring': initialization completed in 4017 ms
2012-05-18 11:42:57.499:INFO::Started SelectChannelConnector@0.0.0.0:8180
2012-05-18 11:42:57.500:INFO::Started SelectChannelConnector@0.0.0.0:8380
[INFO] Started Jetty Server
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 45.296s
[INFO] Finished at: Fri May 18 11:42:57 PDT 2012
[INFO] Final Memory: 32M/81M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.mortbay.jetty:jetty-maven-plugin:7.1.3.v20100526:run  
(start-    container) on project functional-test: Failure: Permission denied -> [Help 1]
[ERROR] 

任何人都知道它被拒绝了吗? 我使用连接器为每场战争设置端口号。

1 个答案:

答案 0 :(得分:3)

您可以使用tomcat:deploy-only目标,并在warFile配置参数中指定war文件的路径。