注:maven helper的idea插件,能可视化查看maven版本依赖于冲突
IDEA运行debug的本质,就是启动一个JVM,让字节码与代码进行匹配
问题:调试代码时,调试器报出源代码不匹配
- 确定不匹配的类
- 寻找对应GitHub的仓库
- 确定正在使用的版本
- 引入正确的版本,若有冲突,解决
确定不匹配的类:
以mvn-loc-plugin代码为例,(maven插件,统计一共有多少行代码)
- mvn install (将本地代码打包)
- 其他项目A中引用该打包代码的插件
<plugin>
<!-- 名字随便起的 -->
<groupId>com.maven.test.plugin</groupId>
<artifactId>maven-loc-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
</plugin>
运行mvn-loc-plugin代码
mvn com.maven.test.plugin:maven-loc-plugin1.0-SNAPSHOT:loc
debug运行mvn-loc-plugin代码
mvnDebug com.maven.test.plugin:maven-loc-plugin1.0-SNAPSHOT:loc
若需要修改8000端口号~\apache-maven-3.5.3\bin\mvnDebug.cmd脚本中自行修改
-
在A中新建remote连接
remote连接.png - 启动debug的remote连接
总结:
maven启动JVM.而IDEA的全类名与JVM对不上;
此时,调试器显示字节码与源代码匹配不上;
解决问题:
1.找到引入差异的pom版本.
2.找对应全类名的GitHub代码,更新<dependency>版本,并解决冲突即可;
com.sisu.xxx site:GitHub
网友评论