最近在公司使用sonarqube来扫描Java代码,并使用插件;网上的资料缺少这一块的,总结一下:
环境信息
JDK 1.8;
sonarqube 7.8;(只能用这个版本)
插件:使用了阿里的p3c和findbugs4.0.0;
这些版本很重要,谁踩坑最多的地方;
踩坑
网上都说findbug要用3.10,我用了,但报错搞了我好几天
报错:
org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar (default-cli) on project eagle-enterprise-operation-parent: Execution default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar failed: An API incompatibility was encountered while executing org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar: java.lang.NoSuchMethodError: org.sonar.plugins.java.api.JavaResourceLocator.findSourceFileKeyByClassName(Ljava/lang/String;)Ljava/lang/String;
都说要用3.10
https://blog.csdn.net/weixin_44689968/article/details/115506998
对应的插件版本,在这个文章里找到救赎~
https://blog.csdn.net/catoop/article/details/121493478
sonarqube不同语言自定义规则
下载p3c的jar包,打包后上传到sonarqube的plugins目录
https://www.jianshu.com/p/b849175dd38b
自定义规则,基于p3c
https://blog.csdn.net/m0_54731428/article/details/125877808
基础的安装其它网页资料都有,我就不重复了;
方法不匹配的,我问GPT,他说是版本不匹配,我还没信,在那边怀疑是项目有问题,真是愚蠢;
在翻资料的过程中,看到有个截图上写findbugs用4.0,用了之后果然没问题了;
现在处理一般问题很容易,但遇到这种框架类的“难题”我往往只能靠时间硬磨……
最近还做了个把MySQL语法转成达梦语法的需求,下一篇写这个~