Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从EclipseIDE向Tomcat部署多maven模块?_Java_Eclipse_Maven_Tomcat - Fatal编程技术网

Java 如何从EclipseIDE向Tomcat部署多maven模块?

Java 如何从EclipseIDE向Tomcat部署多maven模块?,java,eclipse,maven,tomcat,Java,Eclipse,Maven,Tomcat,我有一个多模块Maven项目,其中有一个公共模块,它是其他两个模块的依赖项。其中一个模块生成一个war,该war通过叠加集成到另一个模块中 最终的war由Maven clean install命令生成,没有问题。目标中的所有结构都正常。 但是如果我在servers视图中安装Tomcat8服务器(使用'takesTomcatControlInstallation'模式)并部署该项目,那将是一场噩梦 我在WEB-INF/classes中有测试资源,公共模块(jar)没有部署在WEB-INF/lib中

我有一个多模块Maven项目,其中有一个公共模块,它是其他两个模块的依赖项。其中一个模块生成一个war,该war通过叠加集成到另一个模块中

最终的war由Maven clean install命令生成,没有问题。目标中的所有结构都正常。 但是如果我在servers视图中安装Tomcat8服务器(使用'takesTomcatControlInstallation'模式)并部署该项目,那将是一场噩梦

我在
WEB-INF/classes
中有测试资源,公共模块(jar)没有部署在
WEB-INF/lib
中,在构建过程中应该集成的war显示在
WEB-INF/lib

有没有一种方法可以在Maven配置中不添加Tomcat插件而进行干净的部署

作为参考,它是霓虹灯版本。 部署程序集仅配置为
src/main/*
(加上Maven依赖项)


我们不理解为什么Eclipse没有部署在
target/xxx
目录中生成的最终应用程序。

好的,我发现了问题

Eclipse不关心部署程序集。 它混合了部署程序集和Java构建路径

导入maven项目时,由于未知原因,项目的配置可能不好。 检查Java构建路径中声明的源文件夹,并特别检查每个源文件夹的输出目录

对于
src/test/resources
,它设置了一个默认输出(而不是
目标/测试类
)。因此,所有测试资源都被复制到
target/classes
中。 我不知道他为什么要把这个目录部署到Tomcat上

在部署程序集中,它只设置以下目录:

   - src/main/java -> WEB-INF/classes
   - src/main/webapp -> /
   - /target/m2e-wtp/web-resources -> /
   - Maven dependencies -> WEB-INF/lib
   - link to others modules

现在一切都很好。

等等,在一个大的
war
文件中有很多
war
文件吗?也许这就是问题所在。要么使用
war
模块化,要么使用
jar
模块化。但这两者都不是幻想…是的,不是我的选择。我们已经恢复了一个旧项目,其中有一个War模块,该模块在最终的War中重叠。这个功能在Maven中存在,当我们使用Maven构建时没有问题。我们尝试了另一个经典的projet,与Eclipse相同的pb(没有项目方面,没有部署程序集)。Eclipse似乎不是第一次无法管理该项目。很无聊。他为什么不部署最终的目标构建?