为什么声纳需要二进制文件(sonar.binaries)?它如何使用二进制文件来完成它对二进制文件所做的事情?
sonar.binaries
是一个已弃用的属性:您现在应该使用sonar.java.binaries
该属性由 java 分析使用(所以我假设您正在分析 java 代码)。
分析是在源代码级别逐个文件完成的,为了正确进行语义分析,java 分析器从.class
files.
具体来说,这就是它的工作原理:在分析时A.java
其中声明:
class A {
B b;
}
java分析器将构建类A的语义模型,并针对外部依赖关系查找字节码B.class
完成其语义分析。
它为什么要这么做?以便对表达式的求解类型有更准确的分析。 (即:回答问题:b.foo() 的类型是什么:我们需要找出 foo() 方法的定义)。
这是一个经过深思熟虑的选择,即使我们有它们的源代码,每个外部依赖项都依赖字节码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)