分享升级spotbugs-maven-plugin 4.8.6.0遇到的坑(内附稳定运行的jdk和maven版本)
SpotBugs介绍
SpotBugs是Findbugs的继任者(Findbugs已经不再维护),用于对Java代码进行静态分析,查找相关的漏洞,SpotBugs比Findbugs拥有更多的校验规则。静态分析会检查Java字节码(.class文件)是否存在错误模式(错误模式是一种经常容易出错的代码表达式/习惯用法,其中主要包括:错误使用编程语言的某些特性、误用的API方法、在维护期间修改代码时误解变量、错别字,使用错误的运算符)如果大家想了解更多关于spotbugs的内容可以参考文章:
使用神器Spotbugs,轻松入门静态代码分析-CSDN博客
升级spotbugs-maven-plugin从4.5.3.0到 4.8.6.0遇到的坑
最近升级了一下spotbugs-maven-plugin,从4.5.3.0到 4.8.6.0。
通过maven方式运行:
mvn clean install -U spotbugs:check
报错信息如下:
Caused by: java.lang.UnsupportedClassVersionError: org/codehaus/mojo/spotbugs/SpotBugsMojo has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
此时配置信息:jdk1.8.0_151+maven3.6.3
从提示信息来看需要升级java到55即jdk11,jdk1.8对应的版本是52
升级jdk11 ,使用jdk 11.0.12
此时配置信息:jdk11.0.12+maven3.6.3+ spotbugs-maven-plugin4.8.6.0 运行报错信息如下:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project PerformaceDemo: Compilation failure: Compilation failure:
[ERROR] 不再支持源选项 5。请使用 6 或更高版本。
[ERROR] 不再支持目标选项 1.5。请使用 1.6 或更高版本。
显然maven 又出了问题!继续升级maven,直接找了一个脚心的版本3.9.6(其他的版本没有进行测试)
成功运行的配置
升级maven到版本3.9.6,
此时配置信息:jdk11.0.12+maven3.9.6+ spotbugs-maven-plugin4.8.6.0 ,成功运行!!!
最后的总结
1.spotbugs-maven-plugin不要随意升级到新版本 4.8.6,因为升级会依赖jdk 和maven的版本,这对于公司来讲是不可能的,不会因为一个测试的东东,调整公司的jdk和maven的版本;
2.jdk1.8.0_151+maven3.6.3+spotbugs-maven-plugin 4.5.3.0 是可以稳定运行的(经过测试);
3.jdk11.0.12+maven3.9.6+spotbugs-maven-plugin 4.8.6.0 是可以稳定运行的(经过测试);
我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!