繁体   English   中英

如何在Eclipse中运行Tomcat中的Maven项目

[英]How to run a Maven Project In Tomcat From Eclipse

我正在运行一个多级maven项目。 它将webapps打包为WAR,它依赖于打包为JAR文件的组件

我所做的大多数代码更改都属于那些JAR文件。

要测试更改,我需要重新打包JAR和WAR,并在tomcat中进行外部部署。

我尝试使用sysdeo-tomcat-maven-eclipse插件,但它没有按预期工作。

请告知是否有人有解决此问题的方法

谢谢Gaurav

使用Maven Eclipse Integration插件

我遇到问题我发现尝试命令行工具mvn进行调试很有帮助。 根据经验,如果它构建时没有错误命令行,那么你可以在Eclipse中运行它(但是tomcat也有问题,所以你可能需要每隔一段时间清理工作目录并清除缓存)。

除此之外,我真的建议使用Maven Eclipse Integration插件! 我使用Sonatypes插件repo http://m2eclipse.sonatype.org/sites/m2e的版本。 eclipse repo上有一个更新的集成,但它的工作方式不同,我还没有时间调查它的用途。

如果您的项目是模块化的,那么将根项目设置为一个简单的项目(没有Java,没有Java EE)可能会有所帮助。 然后将子项目导入为简单的Java项目(同样没有Java EE)。 您仍然可以激活依赖关系管理并通过项目运行构建目标。

导入模块

您只需按依赖项选择目标项目所需的子模块。

选择要包含为子项目的依赖项

对于构建war文件的任何项目,激活java ee的facets并在可用的进一步配置下配置上下文根(这只能执行一次,为什么屏幕截图中缺少该选项,所以正确)。

选择您喜欢的方面

然后为您的指定项目设置部署程序集。 应将所有兄弟项目(在您的工作区中处于活动状态)添加到部署程序集中,还需要将maven依赖 构建路径条目添加到部署程序集。 设置完成后,您可以使用Run on server指令启动Web应用程序。

安装部署程序集

我发现在编写maven项目时始终保持纯Java模式很有用。 Eclipse中的任何智能视图只会模糊场景背后发生的事情,无论如何都可以通过激活指定的项目来访问特定的编辑器!

我使用eclipse webtools插件,并从中运行我的Tomcat。 它有一个重新发布的方法,也可以发布jar(如果没有,你只需清理目录并重新发布)。

在pom文件中,您应该具有以下行,以便自动支持Web工具栏

<build>
    ...
    <plugins>
        <plugin>
            <artifactId>maven-eclipse-plugin</artifactId>
            <configuration>
                <wtpversion>1.5</wtpversion>
                ...
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</build> 

使用Maven Eclipse Integration插件和Web Runner

设置一个指定项目(已在另一个答案中描述),使用最新的Maven Eclipse Integration插件。 这应该位于您的eclipse版本的更新站点下。 在我的案例中Indigo - http://download.eclipse.org/releases/indigo Collaboration / Maven Integration for Eclipse)。

作为内置服务器的替代品,它经常无法更新部署程序集中的工作区依赖项(对于tomcat),我建议使用类似于maven指令jetty的Sonatype Web Application Launcher Webby :运行maven jetty插件。 您可以在sonatypes更新站点找到插件M2e Webby的插件 - http://m2eclipse.sonatype.org/sites/m2e-webby/ 安装此插件后,您可以运行配置并从位于{project}/target/m2e-webby的自动构建运行Web应用程序。

在此输入图像描述

我建议将其中一个(默认)嵌入式jetty容器配置为servlet-api的提供者。 如果必须测试特定的运行时,可以通过浏览到服务器主目录并选择适当的提供程序来轻松配置外部容器。

我遇到的缺点很小:

  • 必须手动关闭Web应用程序,没有“重新启动”。
  • 每个Web应用程序都必须在单独的端口上运行,它们不共享容器实例。

使用上述配置获取当前版本的m2eclipse插件时,从JAR文件“file:.. g / workspace / .metadata / .plugins”错误中“无法读取TLD”META-INF / c.tld“。

您需要从已部署的项目lib /文件夹中删除servlet-api.jar和jsp-api.jar以修复上述错误,并设置自定义生成配置,以便不将2个文件复制到部署目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM