Tomcat 将项目jar部署到使用maven cargo插件启动的运行容器时出现问题

Tomcat 将项目jar部署到使用maven cargo插件启动的运行容器时出现问题,tomcat,deployment,maven,integration-testing,maven-cargo,Tomcat,Deployment,Maven,Integration Testing,Maven Cargo,我在maven项目中有一系列Servlet和Servlet过滤器,它们被打包到一个jar中,这个jar将包含在一系列其他“主机”web应用程序的/lib目录中。这些servlet并不意味着要单独运行——也不保证它们自己的战争(它不是一个独立的web应用程序) 在src/test/java目录中,我有一些模拟对象,它们松散地模拟这些“主机”应用程序 我在集成测试阶段使用cargo来启动tomcat实例,但是我很难让tomcat在src/test/java中使用我的模拟“主机”servlet 有推荐

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

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

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

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

此外,在启动容器之前,我需要将实际项目的jar移动到WEB-INF/lib。我曾考虑过使用maven汇编插件来实现这一点?是否有一种方法仅通过货物配置选项来实现这一点


非常感谢您的任何意见。

是的,您必须为此建立一场战争


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

我最后做的是在预集成测试阶段使用maven WAR插件来构建WAR

然后,我使用maven依赖插件将一些需要的依赖项复制到war构建位置

然后我将货物指向新的作战地点进行集成测试

这样,当我进行mvn打包时,我会得到一个包含我想要打包的所有类的jar,当我运行mvn集成测试时,我会得到一个war,cargo作为测试工具启动。结果很好


谢谢你看我的问题。

你对如何让它从src/test/java文件夹而不是从src/main/java文件夹构建war有什么建议吗?将模拟代码移动到src/main/java,并用一个标志来激活它。像往常一样建立你的战争。