eclipse tomcat maven热部署
1、 tomcat插件
如果是Kepler的话,已经自带了tomcat插件,如果没有,到http://www.eclipsetotale.com/tomcatPlugin.html下载安装或在线安装,这里就不多说了。
2、创建Server
打开servers view(window-->show view-->servers),在servers view中新建一个server,如下图所示:
点击next,选择tomcat的安装路径,如图所示:
点击Next,出现如图所示的界面:
其中左面Availible中显示的是当前Workspace中已经存在的web工程,右面是已经添加到tomcat和工程。如果此时还没有那项目,可以先不管,直接Finish即可。等到创建完server后,再添加。
创建完成后,servers view中显示了已经创建的server,如图所示:
右击该server,选择Add and Remove即可打开前面创建时显示的界面,把Availible中需要在tomcat中运行的项目Add到右面,点击finish即可。如下图所示:
3、配置server
双击上图中的server,会打开该server的配置页面,如下图:
其中需要注意的地方有两个(红色标记的地方):
(1)Server Options的第一个选项Serve modules without publishing
在默认情况下,当项目部署到tomcat中,该插件会把项目文件拷贝到上一个配置项Server Locations中的显示Server path的wtpwebapps目录下,即当前wrokspace所在目录下的。metadata子目录中,如我的wrokspace是D:\workspace,那么该目录是:D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps。
但如果选中上面的这个选项,则不会把项目文件发布到该目录下运行,而是:
web资源目录是:web项目的WebContent,即maven web项目的src/main/webapp目录
class文件目录是:是当前配置的class文件的输出目录,即maven项目的target/classes目录
(2)Timeouts
默认情况下start为45秒,stop为15秒,这里可能需要修改一下start为一个合适大的值,它的意思是当启动时间超过这里指定的时间还没有启动完成时,就报错。当我们的项目启动很耗时的情况下,这显然不是我们想要的,所以需要修改一下这个值。
当创建完server后,eclipse默认为server创建一个类似的工程叫Servers,这个工程中目录结构如下所示:
双击打开server.xml,当添加了一个项目到tomcat后,可以看到,自动添加了一个Context节点,如:
- <Context docBase="stuff" path="/stuff" reloadable="true" source="org.eclipse.jst.jee.server:stuff"/>
其中docBase和path默认为工程名称。
这里特别需要注意的是reloadable这个属性,它是热部署的关键,默认为true。在tomcat启动后,会监视我们的工程,如果任何文件有变动,会重新加载这些变动的文件到工程发布目录。当reloadable属性为true时,这对于jsp文件没有问题,但是如果是Java文件修改后,这个属性为true的话,每次修改都会自动重新启动tomcat,这当然不是我们想要的。所以记住要把这个属性手动修改成false,才能够在修改了java文件时不用重启服务也能立即生效,即热部署。
这里说的java文件的修改,不包括新添加类和添加或修改类中的方法签名,如果新添加类或修改了方法签名,也是不能热部署的,必须重启服务才能够生效。
4、运行
通过上面的配置,现在启动服务来试试看,试着修改jsp或java文件,来验证一下效果。
实际上是很简单的操作,只是刚开始时可能有的细节问题不知道,会在上面浪费好多时间。现在好了,再也不用担心这个问题了^_^
eclipse tomcat maven热部署的更多相关文章
- Eclipse+Tomcat实现热部署/热加载配置,修改java代码无需重启tomcat
一.Tomcat热加载配置 Eclipse Package Explorer中找到Servers,点击你所需要运行的tomcat的config配置文件,例如 demo-config,双击该文件夹下的s ...
- eclipse 于 Tomcat于 热部署 project
eclipse在 Tomcat中热部署project 1.在eclipse中国安装一个tomcat插件:SysdeoEclipse Tomcat Launcher plugin(http://www. ...
- Docker化tomcat 并且使用maven热部署
今天没事干 就把自己的tomcat docker化并且使用maven实现热部署 特别记录一下~ 1.首先进行centos7的安装 就不在记录了 注意的是最好使用centos7 因为docker 依赖 ...
- CentOS7下 Java、Tomcat、MySQL、Maven热部署
本文介绍了CentOS7 64位下Java.Tomcat.MySQL.Maven热部署等服务器环境的搭建和调试过程. 学生服务器资源获取方法: 云+校园计划 - 腾讯云 阿里云云翼计划 github ...
- Maven开发基础总结(Maven自启动,Maven打war包,Maven热部署)
学习内容: 1.不依赖外部Tomcat,自己启动方式部署 2.Maven打war包,远程部署到centOS 3.Maven热部署(不关闭Tomcat部署应用) 做maven开发前提: 1.编码UT ...
- 转载:tomcat实现热部署的配置
tomcat实现热部署的配置 我们实现热部署后,自然就可以通过maven操作tomcat了,所以就需要maven取得操作tomcat的权限,现在这一步就是配置tomcat的可操作权限. 进入tom ...
- Eclipse+Tomcat+MAVEN+SVN项目完整环境搭建
1.JDK的安装 首先下载JDK,这个从sun公司官网可以下载,根据自己的系统选择64位还是32位,安装过程就是next一路到底.安装完成之后当然要配置环境变量了. ————————————————— ...
- eclipse+tomcat+maven debug的时候总是出现source not found /Edit lookup path...的问题解决方案
eclipse+tomcat+maven debug的时候总是出现source not found /Edit lookup path...的问题解决方案 这个问题纠结好久好久.... 问题出现的环 ...
- Eclipse Debug不能热部署解决
摘要: Eclipse Debug不能热部署代码may be out-of-synch 问题描述:Project通过ant工具编译部署到JBoss下,在使用Eclipse远程调试功... ...
随机推荐
- viewpager接受值图片轮播
package com.baway.test; import java.util.ArrayList;import java.util.List;import java.util.Timer;impo ...
- C++中的迭代器
C++STL中的迭代器 "指针"对所有C/C++的程序员来说,一点都不陌生.在接触到C语言中的malloc函数和C++中的new函数后,我们也知道这两个函数返回的都是一个指针,该指 ...
- 【线性代数】 06 - Jordan标准型
现在就来研究将空间分割为不变子空间的方法,最困难的是我们还不知道从哪里着手.你可能想到从循环子空间出发,一块一块地进行分割,但这个方案的存在性和唯一性都不能解决.不变子空间分割不仅要求每个子空间\(V ...
- MongoDB丢数据问题的分析
坊间有很多传说MongoDB会丢数据.特别是最近有一个InfoQ翻译的Sven的一篇水文(为什么叫做水文?因为里面并没有他自己的原创,只是搜罗了一些网上的博客,炒了些冷饭吃),其中又提到了丢数据的事情 ...
- XML与JSON的对比
XML与JSON的对比 1.各自定义 XML 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类 ...
- IntelliJ IDEA热加载自动更新(Update classes and resources )
IntelliJ IDEA默认文件是自动保存的,但是手头有个项目jsp文件改动后,在tomcat中不能立即响应变化.想要jsp文件改动后立刻看到变化,可以通过修改配置来实现. ...
- 黄聪:PHP解决textarea内容换行存入数据库,如何解析取出不能自动换行
解决办法: <textarea rows="5" style="height: auto;" ><?php //按行分割,然后每行输出后带上一 ...
- C++11:POD数据类型
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 啥是POD类型? POD全称Plain Old Data.通俗的讲,一个类或结构体通过二进制拷贝后还能保持其数据不变,那么它就是 ...
- 关于block的一些理解
之前一直都是用这别人或者是系统系统封装好的block,用这都挺好,可以访问那些定义了block变量的函数变量在block中使用. 首先总结一个block的用法:1.block有些类似于函数的指针 拥有 ...
- OAF_文件系列4_实现OAF上传显示数据库动态图片Image(案例)
20150805 Created By BaoXinjian