将项目jar部署到使用maven cargo plugin启动的运行容器的问题

时间:2011-01-15 21:13:15

标签: tomcat deployment maven integration-testing maven-cargo

我在一个maven项目中有一系列Servlet和Servlet过滤器,这些过滤器被打包到一个jar中,该jar应该包含在一系列其他“主机”Web应用程序的/ lib目录中。这些Servlet并不是单独运行的 - 并且不保证自己的战争(它不是一个独立的Web应用程序)。

在我的src / test / java目录中,我有一些松散模仿这些“主机”应用程序的Mock对象。

我在集成测试阶段使用货物来启动tomcat实例,但是我很难让tomcat在src / test / java中使用我的模拟“主机”servlet。

有推荐的方法吗?我是否需要先从src / test / java中的源代码构建一个war?

另外,在启动容器之前,我需要将实际项目的jar移动到WEB-INF / lib。我曾考虑使用maven程序集插件来执行此操作?有没有办法用货物配置选项来做到这一点?

非常感谢您的任何意见。

2 个答案:

答案 0 :(得分:0)

是的,你必须为此建立一个WAR。

Cargo部署容器理解的内容,即WAR或EAR文件,但不是JAR文件。

答案 1 :(得分:0)

我最终做的是在预集成测试阶段使用maven-war-plugin来制造战争。

然后我使用maven-dependency-plugin将一些必需的依赖项复制到war构建位置。

然后我将货物指向新的战争地点以进行整合测试。

当我做mvn包时,我得到一个包含我想要打包的所有类的jar,当我运行mvn integration-test时,我得到一个货物启动作为测试工具的战争。它运作得很好。

感谢您查看我的问题。