IDEA热部署(三)---jetty插件调试(转)
我们在开发的时候习惯对于项目的框架进行分层,在idea中对于不同的层,我们使用module来进行划分,不同的module之间是通过maven来进行依赖的。
我们的项目结构是这样的,admin是我们的war,里面含有controller,service和impl分开,admin依赖于service,这种情况下,我们使用jrebel来启动。
第一种:使用jrebel来启动
修改xml,生效
我们修改了xml中的sql语句是是如何热部署的:
我们需要将service-impl重新进行clean install
我们回到debug的console来进行观察,我们看到jrebel会自动部署我们新安装的包,效果:
浏览器上面的网页刷新发现我们需要重新登入:
有个问题:为什么没有重新启动服务器,而这里却需要重新登入。
改变方法结构,无效
测试修改service中添加参数:
添加完成之后,发现controller中自动爆出错误:
impl中自动检测出现错误:
如果我们只是保存之后,运行发现我们新添加的东西没有起作用
我们对于service或者serviceImpl进行mvn clean install 发现不成功,这是因为我们的admin,是依赖于这两个包的,我们无法再admin使用它们的时候,对于整个包进行操作。就是clean install,是不允许我们操作的。
修改方法内容,生效
修改admin中的controller,和修改serviceimpl中的方法,无需重启。
使用Ctrl+F9进行编译。
第二种情况,debug启动
修改方法内容,生效
修改方法结构,无效
dao层:无效
修改接口中的方法结构:无效
编译单个文件
上面我在修改单个方法结构之后觉得应该是响应的包没有进行安装的问题,所以我的修改没有启动作用,所以我在进行将war依赖的jar进行来重新的install,
编译整个项目
重新installservice,然后在重新installadmin,
依赖包有更新,但是服务器中代码仍然是执行的之前的代码,也就是说我修改的代码,重新打成了jar包放入了我们的war包中,但是war现在运行的代码仍然是之前的代码。(不明白为什么会有这种情况)
修改xml的sql语句,无效
将代码修改正确之后,将admin中的war包重新打入正确语句的impl实现包之后:
发现我们的页面任然限制之前的错误,证明新打的war包没有在jetty插件中运行, 证明jetty插件可能不是热部署war包的。重新启动jetty之后,不做任何之前的修改,部署,发现我们的页面正常访问。证明救过,jetty不是热部署war包的。
总结:
使用jetty插件中的jrebel来进行debug启动的时候:
修改方法内容(controller和service)内容生效。
修改方法结构无效。
修改xml(sql语句)文件生效。
直接使用jetty进行dubug的时候:
修改方法内容(controller和service),生效。
修改方法结构(dao,和接口中的),无效。
修改xml(sql语句),无效。
问题:
在进行修改方法结构的时候,个人认为是因为我的war依赖于我的jar来运行的,我修改了jar之后,没有重新打包放到war中所以我修改的代码没有起到作用,于是我在修改代码之后进行重新install,发现我们war中的jar确实更新了,但是我们的jetty服务器中运行的代码仍然是之前的代码,如果我们冲新启动我们的服务器,不做任何修改,发现我们修改的效果可以运行出来,不是很清楚这个是什么原因,是jetty插件的运行时,不能够进行热部署war吗?
相关文章
- idea打开maven项目 没有maven 窗口_maven主要是做什么
- IntelliJ IDEA优秀插件(编程通用)「建议收藏」
- idea是什么软件_总结IDEA开发的26个常用设置
- IDEA如何使用热部署方式启动项目?
- idea连接mysql数据库报java.lang.RuntimeException: com.mysql.cj.exceptions.InvalidConnectionAttributeExcepti
- idea使用本地tomcat_tomcat怎么部署项目
- idea配置远程debug_idea远程调试
- idea远程debug配置_debug调试教程
- IDEA 自动生成mapper
- IntelliJ IDEA 修改内存大小,使得idea运行更流畅。
- IDEA快速搭建SpringBoot项目
- IDEA 中如何调试 SpringFramework 学习源码
- IDEA 公司,又出新神器,一套代码适应多端!
- 盘点10个最受欢迎 IntelliJ IDEA 主题,必有一款适合你!
- IDEA 的 5 大调试技巧,你都掌握了吗?
- IntelliJ IDEA中连接MySQL数据库的操作步骤(idea连接mysql数据库)
- 利用Idea连接MySQL数据库(idea连接mysql)
- 实现Idea和MySQL良好交互:MySQL驱动设置(ideamysql驱动)
- 实现Idea集成Oracle数据库(idea集成oracle)
- 深入探索Idea运行Oracle的可能性(idea运行oracle)
- 从Idea中将Oracle数据库映射到前端(idea映射oracle)
- 快速掌握Idea 使用 Oracle数据库技巧(idea使用oracle)
- 在 IDEA 中创建 Spring Boot 项目的方式(详细步骤教程)