为什么声纳需要二进制文件(sonar.binaries)?它如何使用二进制文件来执行二进制文件的操作?
ben*_*ico 16
sonar.binaries 是一个弃用的属性:您现在应该使用 sonar.java.binaries
java分析使用此属性(所以我假设您正在分析Java代码).
分析在源级别逐个文件地完成,为了正确地进行语义分析,java分析器从.class文件中读取外部依赖性的信息.
具体来说,这是它的工作原理:在分析A.java声明时:
class A {
B b;
}
Run Code Online (Sandbox Code Playgroud)
java分析器将构造类A的语义模型,并且对于外部依赖项,查看字节码B.class以完成其语义分析.
它为什么这样做?为了解决表达式的类型,可以进行更准确的分析.(即:回答问题:b.foo()的类型是什么:我们需要找出foo()方法的定义).
这是对每个外部依赖项依赖字节码的实现的有意选择,即使我们有它们的源.
| 归档时间: |
|
| 查看次数: |
3396 次 |
| 最近记录: |