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远程调试功... ...
随机推荐
- Remove Element
Given an array and a value, remove all instances of that value in place and return the new length. T ...
- ooize节点的属性控制
<workflow-app name="[WF-DEF-NAME]" xmlns="uri:oozie:workflow:[version]"> & ...
- Ubuntu下两个gcc版本切换
Ubuntu系统使用的gcc版本随着发布版本的不同而不同,在编译Android系统时不同的版本推荐用不同的gcc去编译,那么可不可以改变系统的gcc来适应android编译环境的需求呢?答案是可以的. ...
- Matlab数字信号处理
产生方波 clear t=0:0.01:10; subplot(4,1,1) f1=square(t); % 产生周期为2pi的方波信号 plot(t,f ...
- PHP、JAVA、C#、Object-C 通用的DES加密
PHP.JAVA.C#.Object-C 通用的DES加密 PHP: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ...
- 字符数组,字符指针,字符串常量,以及sizeof的一些总结
1.以字符串形式出现的,编译器都会为该字符串自动添加一个\0作为结尾 如在代码中写"abc",编译器帮你存储的是"abc\0". 2.数组的类型是由该数组所存放 ...
- 【python】类中__slots__使用
__slots__作用:限制类的属性,只给实例绑定任何属性和方法 如果我们想要限制class的属性怎么办?比如,只允许对Student实例添加name和age属性. 为了达到限制的目的,Python允 ...
- ios 开发小技巧一
对于UITableViewCell中的textField/textView,你肯定想让它编辑时可以把所在行滚动到键盘上方.如果你的VC是UITableViewController或者子类,那么只要在o ...
- Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
今天遇到一个项目中用到Android 6.0的系统,但是有个文件是从Assert目录下写到SDCard中,但是AndroidMinifest.xml中已经加了文件的读权限和写权限,异常日志是在创建文件 ...
- php 读取文件readfile
<?php //读取文件 //echo readfile('aa.txt'); //打开文件更好的方法是fopen $f = fopen('aa.txt' , 'r') or die('unab ...