将tomcat和eclipse集成为热部署环境

udi*_*dit 88 java eclipse tomcat

我想以集成的方式设置eclipse和tomcat,以便在不需要部署的情况下立即反映对我的JSP和servlet(如果可能)的更改.

好吧,这是在互联网上有很多答案的问题之一,但它们看起来都不一样.(使用Sysdeo插件,使用JBOss插件,使用过时的Eclipse执行操作,使用MyEclipse等等)并且我找不到1个确定的资源来引用.所以为了我的利益,最简单和最推荐的程序是什么?

这假设我有eclipse和tomcat独立运行.我实际上已经设法使用以下说明以非热部署方式集成它们:http: //www.ibm.com/developerworks/opensource/library/os-eclipse-tomcat/index.html

Eclipse版本版本:3.4.2(Ganymede)Tomcat v6.0.20

Boz*_*zho 75

有两种选择.

首先,Eclipse允许您执行此操作,只需稍微更改配置(另请参阅此详细信息)

  • 将Tomcat添加到服务器列表中
  • 使项目"动态Web项目"(通过创建向导或通过设置中的构面部分)
  • 将项目添加到tomcat,并配置其"部署程序集"
  • 双击列表中的tomcat以打开配置
  • 将"发布"更改为"从不自动发布"(这意味着当您按ctrl + s时服务器不会重新启动)
  • 在调试模式下启动tomcat

这仍将反映代码更改,但不会重新启动服务器.

其次,我已经使用了FileSync插件很长一段时间:

  • 配置插件以将所有类从bin控制器发送到WEB-INF/classestomcat安装(这与配置部署程序集几乎相同)
  • 配置所有其他资源以转到其各自的位置
  • 可选地,将文件同步位置设置中的所有绝对路径外部化为单个变量,并在eclipse中配置该变量(因此,如果所有成员都使用eclipse,您也可以提交文件同步设置)
  • 将Tomcat添加到eclipse中的Servers列表中,将"Server locations"选项配置为"使用tomcat安装"(当您从服务器列表中双击tomcat时,将打开该屏幕)
  • 在调试模式下启动tomcat

它对我来说非常完美.每次非结构性变化都会立即反映出来,无需重新部署.

更新:
您可以在此处详细了解热部署方法.
我还创建了一个项目,可以轻松地将工作区与servlet容器同步.

  • 我是用另一种方式做的:首先,改为自动发布; 第二步,单击服务器配置中的"模块"选项卡,然后单击"编辑",取消选中"启用自动部署",我认为这是最简单的方法.PS:你的第一种方式对我不起作用. (5认同)
  • 我的印象是,通过将"发布"更改为"永不自动发布",更改时不再重新加载/重新编译JSP.通过在调试模式下启动Tomcat,类重载部分工作正常. (2认同)

Mar*_*ted 30

只需让eclipse将类文件直接写入$ TOMCAT/webapps/MyWebApp/WEB_INF/classes目录.然后,配置apache-tomcat以检查类文件是否已更新,如果有,则重新加载它们.

要将tomcat配置为在更改时自动重新加载类,您需要

编辑$TOMCAT/conf/context.xml和设置:

<Context reloadable="true"> 
Run Code Online (Sandbox Code Playgroud)

您可能还需要编辑和重新加载webapps/$YourWebApp/web.xml文件,并包括:

<web-app reloadable="true">
Run Code Online (Sandbox Code Playgroud)

我不记得是否需要进行这两项更改,但这就是我将tomcat-6.0.18配置为自动重新加载的方式.

  • 如何配置Eclipse将类文件写入的位置? (2认同)

Rob*_*anu 8

免责声明:我只是一个快乐的客户,我不为Zero Turnaround工作,我与他们没有任何关系.

查看JRebel - 它允许您在没有重新启动Web应用程序的情况下进行编码.它基本上可以通过检测您的类并调整其更改来实现.它处理的案例多于热部署,包括:

  • 添加/删除方法
  • 添加/删除构造函数
  • 改变界面
  • 添加/删除已实现的接口

这是商业化的(定价细节,截至2018年6月为550美元/年),它有很多第三方框架的插件,包括:

  • 吉斯
  • 弹簧
  • Struts 2

你可以毫不费力地获得免费试用 - 我建议你试一试.

  • Jrebel,当它工作时,它的工作原理.如果没有,那就是噩梦.我已经在他们的支持下打了一个多星期了,我仍然无法在我简单的弹簧mvc设置中使用它.如果没有我发送我的应用程序或我的应用程序的helloworld,他们将无法进一步帮助.而且,你的价格已经过时 - 他们现在收取炸弹.感谢上帝,我只使用了他们的试用版 (2认同)

Pau*_*ier -2

最简单、最快:设置 Eclipse 在构建时生成 WAR 文件;作为构建后步骤,将该 WAR 文件复制到您的 tomcat webapps 目录中。Tomcat 将识别更改并刷新站点,无需部署。请注意,这并不完美;使用该 Web 应用程序的用户可能会获得不太理想的体验,因为 Tomcat 会在用户“下面”重新启动该 Web 应用程序;但这确实符合你的要求。