0

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

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

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

有推荐的方法吗?我需要先从 src/test/java 中的源代码构建战争吗?

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

非常感谢您的任何意见。

4

2 回答 2

0

是的,您必须为此构建一个 WAR。

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

于 2011-01-15T21:18:31.570 回答
0

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

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

然后我将货物指向那个新的战争地点进行集成测试。

这样,当我执行 mvn package 时,我会得到一个包含我想要打包的所有类的 jar,而当我运行 mvn integration-test 时,我会遇到一个货物作为测试工具启动的战争。结果很好。

谢谢你看我的问题。

于 2011-01-21T02:48:51.727 回答