How to configure hot deploy in Eclipse
In this tutorial, we will show you how to configure Eclipse debugger to support hot deploy, hot swap or hot code replace without restarting the Server, this speed development a lot.
Environment :
- Eclipse 4.4 (Supported in older version as well)
- Eclipse Tomcat Plugin
1. Hot deploy example
Review a simple hot deploy example, code changes without restarting the Tomcat plugin. Assume a simple Spring MVC web project is deployed via the Eclipse-Tomcat plugin :
1.1 Original code
@Controller public class TaskController { @RequestMapping(value = "/task", method = RequestMethod.GET) public ModelAndView index() { logger.debug("index()"); ModelAndView model = new ModelAndView(); model.setViewName("index"); return model;
Access : http://localhost:8080/project/task
//output DEBUG c.m.o.web.controller.TaskController - index()
1.2 Change the code, logs something else
@Controller public class TaskController { @RequestMapping(value = "/task", method = RequestMethod.GET) public ModelAndView index() { logger.debug("index() - NEW - NO RESTART"); ModelAndView model = new ModelAndView(); model.setViewName("index"); return model;
Access again : http://localhost:8080/project/task
//output DEBUG c.m.o.web.controller.TaskController - index() - NEW - NO RESTART
2. Configure Hot deploy in Eclipse
Some steps are required to make Eclipse supports hot deploy.
2.1 Double clicks on the Tomcat plugin, refer to publishing tab, make sure Automatically publish when resources change is selected. This should be the default option, to support “hot deploy” resources, for example : JSP, XML and properties files.
2.2 In the Tomcat Plugin page, clicks on the Module view, make sure Auto Reload is Disabled. Default is enabled.
This is an important step, failed to set the auto reload to disabled, the Tomcat server will be restarted every time you modified something!
2.3 Start Project in DEBUG mode. Hot Deploy is supported in DEBUG mode only.
Done.
3. Limitation
Hot deploy has supported the code changes in the method implementation only. If you add a new class or a new method, restart is still required.
To simulate it, try to add a new method, following pop up screen will be displayed, saying the code changes cannot be hot swapped in the JVM.
References
From:一号门
COMMENTS