maven改java文件自动部署_eclipse mavenWeb项目真正实现热部署(修改java代码和页面文件不用重启tomcat)...

1.前言

首先,本文创作灵感源于博客园园作者signheart,特此鸣谢!原文链接见文末推荐;

百度都搜破了,全网讲的都是如何将maven项目部署到tomcat上,对于热部署的认知,真是令人汗颜!

其次说说热部署的含义:

热部署原来被定义为:tomcat启动后,如果你往webapps目录下,添加新的项目,tomcat会实现自动将其发布的功能,这时,就叫做热部署。

网上所实现的热部署,也是这样:通过修改pom.xml,利用maven插件,运行tomcat7:run命令自动将maven项目进行打包,并发布到tomcat上。

纯JavaWeb项目对热部署的定义为:修改Java文件和其它文件不需要重启tomcat,可以即时生效。

本文将带你一步一步实现真正的热部署!

2.情景展示

maven项目标准目录结构展示

276116eedc6e68cc9ec5460cd6753703.png

maven项目Java文件的默认编译位置

b7c41e91f770005e0786373445da75c8.png

在eclipse中,MavenWeb项目如何实现热部署?

3.错误方式

手动修改maven项目的class文件的默认输出位置

第一步:将class文件的编译位置:demo_WebService2/target/classes,统一改为:demo_WebService2/src/main/webapp/WEB-INF/classes;

第二步:采用了"Default output folder"(选中"Allow output for source folders"可以看到);

6feac36ad27bba58f299d846e92d79ea.png

第三步:Tomcat热部署访问:D:\WorkSpaces\eclipse2016\demo_WebService2\src\main\webapp;

虽然项目也可以正常启动并运行,但是这样的弊端有二:

其一,无法单独运行Java类,强制运行时,会报错:找不到或无法加载主类;

其二,不能更新maven项目,一但更新maven项目,就会导致class文件的默认位置还原为target/classes目录下。

什么时候需要更新maven项目?pom.xml更改后,必须更新,否则不生效。

4.解决方案

修改pom.xml改变修改maven项目的lass文件的默认输出位置。

改动一:更改maven默认的打包目录

在plugins标签体内添加

maven-war-plugin

${project.basedir}/src/main/webapp

${project.basedir}/src/main/webapp

改动二:更改class文件的编译位置

在build标签体内添加

${project.basedir}/src/main/webapp/WEB-INF/classes

第三步:保存并更新maven项目(Alt+F5)

bc092501103be2115792fdd295f40bc6.png

选中项目-->右键-->Build Path-->Configuire Build Path

class文件的输出位置已经变更至WEB-INF下(测试除外)

2bca542198639dfeb635ca08c6728820.png

第四步:修改server.xml

Server工程-->打开要热部署项目所对应的tomcat的server.xml文件

c89177b33843440dd7f880e9fb936293.png

在Host标签体内添加Context标签,指定项目发布位置,及访问路径

4e0aaaf54df473a139c07c240db96492.png

第五步:以debug模式运行项目即可。

047612f210272dcc25d8d10180aa80aa.png

第六步:网页访问

b83313e57695d5fee03f42c9dca3778c.png

写在最后

哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

相关推荐:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值