博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot的热部署和dubug
阅读量:7052 次
发布时间:2019-06-28

本文共 2422 字,大约阅读时间需要 8 分钟。

采用了项目聚合,产生一些不同,遇到的问题和解决方法分享下。

项目结构:

  rebuilder2 

    -htran  主项目

    -htran-api  

1、htran.pom

com.cq
common-parent
1.0.0-RELEASE
      
org.springframework.boot
spring-boot-maven-plugin
true
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
org.springframework
springloaded
1.2.6.RELEASE

2、IDEA配置

  RUN -> Edit configuraions -> '+' -> Remote ->右侧修改名称为debug

3、maven命令

clean spring-boot:run -pl htran

  由于采用了项目聚合,htran引入了htran-api同时还继承了ParentPom,所以直接在rebuild2 路径下 mvn clean spring-boot:run 会同时启动htran-api;而htran-api只是用来存放一些接口和实体类的,并没有application.java也不能运行,mvn在构建时就会产生 Unable to find a suitable main class异常,而直接在htran路径下执行mvn clean spring-boot:run又会报找不到htran-api的错误,所以在rebuild2 路径下添加  -pl htran。

4、先执行maven命令,再run刚刚配置的debug,就可以热部署+debug了

5、修改代码后要执行重新编译,快捷键是ctrl + shift + F9

 

6、如果只是想热部署而不是debug,那就去掉pom中的

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005

直接 clean spring-boot:run -pl htran,不需要配置debug

 

一些异常:

  找不到<parent>项目的pom文件。这是因为一般我们在使用idea时,会在setting中指定idea使用本地的maven库路径,而忽略了maven配置文件setting.xml中对本地库路径的设置,这样通过idea使用maven时会使用配置的路径,但直接使用mvn命令,则会由maven直接使用setting.xml的配置路径。这样手动添加到idea本地库的包maven就会找不到。

  包冲突:javax.persistance。 由于hibernate已经自带了javax.persistance,如果在其他地方引入了低版本的javax.persistance依赖,mvn在构建项目时如果先加载了低版本的包,就不会再加载高版本包,这就会出现各种错误。常见是各种 java.lang.NoSuchMethodError。排除低版本的依赖即可。但是直接用idea构建项目就不会有这个问题(也许idea能智能加载高版本包?

  java.lang.IllegalAccessException: Class org.springsource.loaded.ReloadableType can not access a member of class org.springframework.aop.framework.CglibAopProxy$ClassLoaderAwareUndeclaredThrowableStrategy with modifiers "public" 这个是springloaded版本问题,似乎和jvm版本也有关系,官方说是升级到1.2.6就解决了,但是我在用的时候还是会出现,但是不影响运行,不用管他。奇怪的写这个笔记的时候,想找到这个异常信息,又运行了一下,却又不抛异常了。编程真是神奇啊。。。

  

转载于:https://www.cnblogs.com/bianzy/p/5957084.html

你可能感兴趣的文章
HDU-1045 Fire NetFire Net 最大团
查看>>
Eclipse自动部署项目到Tomcat的webapps下的有效方法
查看>>
Extjs4快速上手三——实现主界面
查看>>
如何替代Flex?
查看>>
控制属性修改时间,控制时间,联合主键
查看>>
android-包签名
查看>>
Android开发和调试必备工具-SDK Tools
查看>>
《微软的软件测试之道》读书笔记 之 结构测试技术
查看>>
ASP.NET中Session的个人浅谈
查看>>
ORACLE里锁有以下几种模式,v$locked_object,locked_mode
查看>>
【树莓派】Linux 测网速及树莓派源
查看>>
Java用户线程和守护线程
查看>>
[TypeScript] Use the never type to avoid code with dead ends using TypeScript
查看>>
Javascript 与 SPA单页Web富应用
查看>>
SpringMVC之访问静态文件
查看>>
【java设计模式】之 模板方法(Template Method)模式
查看>>
小米手机会不会更好
查看>>
atitit.Sealink2000国际海运信息管理系统
查看>>
android面试总结01 activity生命周期
查看>>
Java 实现策略(Strategy)模式
查看>>