我有一些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'
谢谢!
答案 0 :(得分:0)
SonarQube体系结构不旨在支持此用例。
但是,您可以“欺骗” SonarQube。首先,您可以运行CFR以使源文件显示在SonarQube中。
其次,为了获得错误报告,您可以手动运行SpotBugs,并将报告放置在/target/findbugsXml.xml
或/target/spotbugsXml.xml
处。如果存在文件,SpotBugs插件将假定已经使用Maven进行了分析,并从XML加载了问题。
可能会破坏什么: -有些问题可能很难映射到其反编译的源文件。 -线路映射可能会失败,因为反编译器未提供一对一的映射。
替代: 这是一个詹金斯配置示例,结合了包括CFR和FSB在内的两个工具: https://github.com/GoSecure/jenkins-fsb