JSP在Ubuntu中实现热部署的常用方法
Tomcat作为常用的Java Web服务器,原生支持JSP热部署,只需调整配置文件即可。
server.xml文件(路径通常为/opt/tomcat/conf/server.xml),找到<Host>标签,添加autoDeploy="true"和deployOnStartup="true"属性,使Tomcat自动检测并部署webapps目录下的应用。示例如下:<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" deployOnStartup="true">
conf/context.xml文件,在<Context>标签内添加reloadable="true"属性,Tomcat会监控应用目录下的类文件(WEB-INF/classes)和JSP文件变化,自动重新加载应用。示例如下:<Context reloadable="true">
sudo systemctl restart tomcat9 # 若使用Tomcat 9
JRebel是一款商业工具,可实现代码修改后实时生效,无需重启Tomcat或应用服务器。
File -> Project Structure -> Facets,确保JRebel已启用;再进入Run/Debug Configurations,在Tomcat配置中添加JRebel支持(勾选“Enable JRebel”)。若项目基于Spring Boot框架,可使用DevTools工具简化热部署流程。
pom.xml中添加以下依赖(Gradle项目类似):<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
File -> Settings -> Build, Execution, Deployment -> Compiler,勾选“Build project automatically”;再进入Advanced Settings,勾选“Allow auto-make to start even if developed application is running”。Run/Debug Configurations中,选择Spring Boot配置,勾选“Update classes and resources”选项。reloadable属性及热部署工具。webapps下的应用文件夹)有正确的读写权限(通常属于tomcat用户),避免因权限问题导致热部署失败。