为什么声纳需要二进制文件(sonar.binaries)

2023-12-28

为什么声纳需要二进制文件(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(使用前将#替换为@)

为什么声纳需要二进制文件(sonar.binaries) 的相关文章

随机推荐