为什么 Sonar 需要 Java 个二进制文件?

Why are Java binaries necessary in Sonar?

我正在尝试检查仅使用源代码的分析和使用源代码的分析与编译后生成的 .jar 之间是否存在任何差异。 如果我删除 '-Dsonar.java.binaries' 属性 我得到这个错误:

ERROR: Error during SonarQube Scanner execution
ERROR: Your project contains .java files, please provide compiled classes with sonar.java.binaries property, or exclude them from the analysis with sonar.exclusions property.
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

我正在使用的命令:

sonar-scanner '-Dsonar.host.url=http://192.168.1.25' '-Dsonar.projectKey=org.javaProject:myProject' '-Dsonar.projectName=myProject' '-Dsonar.sourceEncoding=UTF-8' '-Dsonar.sources=src' '-Djavax.net.ssl.trustStore=/certs'

你知道是否可以只分析源代码而不分析任何二进制文件?

要使 SonarQube 具有任何重要价值,它应该 运行 作为构建的一部分,在代码编译和单元测试 运行 之后。坦率地说,我不知道是否可以在没有 class 文件的情况下 运行 进行扫描,但我不建议您尝试这样做。

如果您真的只想查看静态分析问题,我相信 运行Eclipse 或其他可能的桌面工具中有一个“Sonar Lint”工具。