我可以仅使用声纳分析仅.class文件吗?

时间:2019-04-13 19:44:20

标签: java sonarqube sonarqube-scan

我有一些jar文件,我想对它们进行声纳扫描(尤其是findbug),但我没有源文件。是否仅对类文件运行扫描有任何变化?

对提取的jar文件运行声纳扫描仪时,总是收到如下消息:

  

18:49:58.364调试:以语言“空”索引的“ freemarker / template / TemplateServletUtils.class”

当我在sonar-project.properties中将语言定义为“ java”时,我得到了

  

18:58:41.487警告:文件'/home/hans/testcode/testproj/freemarker/template/SimpleHash.class'被忽略,因为它不属于强制语言'java'

谢谢!

1 个答案:

答案 0 :(得分:0)

SonarQube体系结构不旨在支持此用例。

但是,您可以“欺骗” SonarQube。首先,您可以运行CFR以使源文件显示在SonarQube中。 其次,为了获得错误报告,您可以手动运行SpotBugs,并将报告放置在/target/findbugsXml.xml/target/spotbugsXml.xml处。如果存在文件,SpotBugs插件将假定已经使用Maven进行了分析,并从XML加载了问题。

可能会破坏什么:  -有些问题可能很难映射到其反编译的源文件。  -线路映射可能会失败,因为反编译器未提供一对一的映射。

替代: 这是一个詹金斯配置示例,结合了包括CFR和FSB在内的两个工具: https://github.com/GoSecure/jenkins-fsb