在启用sonar python的情况下执行SonarQube扫描仪时出错

在启用sonar python的情况下执行SonarQube扫描仪时出错,sonarqube,Sonarqube,我是一个非常新的sonarqube用户,正在试验我的python项目 我已经安装了docker Sonarqube图像,其中安装了Sonarpython插件。我安装了基于linux的声纳扫描仪 使用说明,我配置了扫描仪 但是,在运行时,我遇到: 11:28:33.486 INFO: Configured Java source version (sonar.java.source): none 11:28:33.496 INFO: JavaClasspath initialization 11:

我是一个非常新的sonarqube用户,正在试验我的python项目

我已经安装了docker Sonarqube图像,其中安装了Sonarpython插件。我安装了基于linux的声纳扫描仪

使用说明,我配置了扫描仪

但是,在运行时,我遇到:

11:28:33.486 INFO: Configured Java source version (sonar.java.source): none
11:28:33.496 INFO: JavaClasspath initialization
11:28:33.512 INFO: ------------------------------------------------------------------------
11:28:33.512 INFO: EXECUTION FAILURE
11:28:33.512 INFO: ------------------------------------------------------------------------
11:28:33.513 INFO: Total time: 22.237s
11:28:33.670 INFO: Final Memory: 28M/509M
11:28:33.671 INFO: ------------------------------------------------------------------------
11:28:33.671 ERROR: Error during SonarQube Scanner execution
org.sonar.java.AnalysisException: Please provide compiled classes of your project with sonar.java.binaries property
    at org.sonar.java.JavaClasspath.init(JavaClasspath.java:66)
    at org.sonar.java.AbstractJavaClasspath.getElements(AbstractJavaClasspath.java:280)
    at org.sonar.java.SonarComponents.getJavaClasspath(SonarComponents.java:175)
    at org.sonar.java.JavaSquid.<init>(JavaSquid.java:82)
    at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:91)
    at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48)
    at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)
    at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)
    at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77)
    at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
    at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
    at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:359)
    at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:354)
    at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:317)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
    at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:128)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
    at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:73)
    at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67)
    at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
    at com.sun.proxy.$Proxy0.execute(Unknown Source)
    at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:185)
    at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:137)
    at org.sonarsource.scanner.cli.Main.execute(Main.java:111)
    at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
    at org.sonarsource.scanner.cli.Main.main(Main.java:61)
11:28:33.486信息:配置的Java源代码版本(sonar.Java.source):无
11:28:33.496信息:JavaClasspath初始化
11:28:33.512信息:------------------------------------------------------------------------
11:28:33.512信息:执行失败
11:28:33.512信息:------------------------------------------------------------------------
11:28:33.513信息:总时间:22.237秒
11:28:33.670信息:最终内存:28M/509M
11:28:33.671信息:------------------------------------------------------------------------
11:28:33.671错误:SonarQube扫描仪执行期间出错
org.sonar.java.AnalysisException:请使用sonar.java.binaries属性提供项目的编译类
位于org.sonar.java.JavaClasspath.init(JavaClasspath.java:66)
位于org.sonar.java.AbstractJavaClasspath.getElements(AbstractJavaClasspath.java:280)
位于org.sonar.java.SonarComponents.getJavaClasspath(SonarComponents.java:175)
位于org.sonar.java.JavaSquid(JavaSquid.java:82)
位于org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:91)
在org.sonar.scanner.sensor.AbstractSensorWrapper.analysis(AbstractSensorWrapper.java:48)
位于org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)
在org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)
位于org.sonar.scanner.sensor.ModuleSensorsExecutor.withmodulestregy(ModuleSensorsExecutor.java:77)
位于org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
位于org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)
位于org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
位于org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
位于org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:359)
在org.sonar.scanner.scan.ProjectScanContainer.scanRecursive上(ProjectScanContainer.java:354)
位于org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:317)
位于org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
位于org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
位于org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:128)
位于org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
位于org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
位于org.sonar.batch.bootstrapper.batch.doExecute(batch.java:73)
位于org.sonar.batch.bootstrapper.batch.execute(batch.java:67)
位于org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
位于com.sun.proxy.$Proxy0.execute(未知源)
位于org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:185)
位于org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:137)
位于org.sonarsource.scanner.cli.Main.execute(Main.java:111)
位于org.sonarsource.scanner.cli.Main.execute(Main.java:75)
位于org.sonarsource.scanner.cli.Main.Main(Main.java:61)

我是否需要配置
sonar.java.source
以成功扫描?

一旦您的项目中有一些java源代码,SonarQube也会要求您提供已编译的二进制文件以执行分析。它让您有两种选择:

  • 如果您只想关注Python代码,那么通过使用以下scanner属性正确地排除java代码来忽略它:
    sonar.exclusions=***.java
    。有关排除的更多信息,请查看此页面:。另一种方法是只包含python文件,而忽略所有其他文件。然而,我们建议尽可能进行更广泛的分析
  • 如果还想分析Java代码,那么首先构建项目,并使用以下属性提供二进制文件和库(可选)的路径:
    sonar.Java.binaries
    sonar.Java.libraries
    。有关配置,请参阅本文档页:

一旦您的项目中有了一些Java源代码,SonarQube也会要求您提供已编译的二进制文件,以便执行分析。它让您有两种选择:

  • 如果您只想关注Python代码,那么通过使用以下scanner属性正确地排除java代码来忽略它:
    sonar.exclusions=***.java
    。有关排除的更多信息,请查看此页面:。另一种方法是只包含python文件,而忽略所有其他文件。然而,我们建议尽可能进行更广泛的分析
  • 如果还想分析Java代码,那么首先构建项目,并使用以下属性提供二进制文件和库(可选)的路径:
    sonar.Java.binaries
    sonar.Java.libraries
    。有关配置,请参阅本文档页:

非常感谢您,先生。这解释了很多。在我的例子中,有一个包含java代码的文件