【发布时间】:2017-03-28 06:23:56
【问题描述】:
我安装了带有 MSBuild.SonarQube.Runner-2.2.0.24 的 SonarQube 6.1 来分析 C# 解决方案。当我运行分析时,我收到以下错误:
警告:SCM 提供程序自动检测失败。没有 SCM 提供商声称 支持这个项目。请使用 sonar.scm.provider 定义 SCM 你的项目。 错误:SonarQube 扫描仪执行期间出错 java.lang.IllegalArgumentException:开始指针 [line=90, lineOffset=89] 应该在结束指针 [line=90, lineOffset=89] 之前 在 org.sonar.api.internal.google.common.base.Preconditions.checkArgument(Preconditions.java:145) 在 org.sonar.api.batch.fs.internal.DefaultInputFile.newRangeValidPointers(DefaultInputFile.java:254) 在 org.sonar.api.batch.fs.internal.DefaultInputFile.newRange(DefaultInputFile.java:238) 在 org.sonarsource.dotnet.shared.plugins.AbstractSensor$SarifParserCallbackImplementation.onIssue(AbstractSensor.java:144) 在 org.sonarsource.dotnet.shared.sarif.SarifParser01And04.handleAnalysisTargetElement(SarifParser01And04.java:109) 在 org.sonarsource.dotnet.shared.sarif.SarifParser01And04.handleIssue(SarifParser01And04.java:73) 在 org.sonarsource.dotnet.shared.sarif.SarifParser01And04.handleIssues(SarifParser01And04.java:55) 在 org.sonarsource.dotnet.shared.sarif.SarifParser01And04.parse(SarifParser01And04.java:43) 在 org.sonar.plugins.csharp.CSharpSensor.importRoslynReport(CSharpSensor.java:183) 在 org.sonar.plugins.csharp.CSharpSensor.executeInternal(CSharpSensor.java:118) 在 org.sonar.plugins.csharp.CSharpSensor.execute(CSharpSensor.java:85) 在 org.sonar.scanner.sensor.SensorWrapper.analysis(SensorWrapper.java:53) 在 org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:57) 在 org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:49) 在 org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78) 在 org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:182) 在 org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142) 在 org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127) 在 org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:247) 在 org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:242) 在 org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:240) 在 org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:232) 在 org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142) 在 org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127) 在 org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47) 在 org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:86) 在 org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142) 在 org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127) 在 org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:115) 在 org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:118) 在 org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:62) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)在 java.lang.reflect.Method.invoke(未知来源)在 org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60) 在 com.sun.proxy.$Proxy0.execute(未知来源) org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233) 在 org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151) 在 org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:110) 在 org.sonarsource.scanner.cli.Main.execute(Main.java:74) 在 org.sonarsource.scanner.cli.Main.main(Main.java:61) 错误:错误: 使用 -X 开关重新运行 SonarQube Scanner 以启用完整调试 记录。 SonarQube 扫描仪未成功完成 08:42:09.074 后处理失败。退出代码:1
当我使用错误消息中建议的 -X 启动 SonarQube 扫描仪时,我得到以下信息:
2016-11-14T14:33:27.2720044Z ##[error]15:33:27.238 Unrecognized command line argument: -X
2016-11-14T14:33:27.2720044Z ##[error]15:33:27.261 Expecting at least the following command line argument:
2016-11-14T14:33:27.2730045Z ##[error]- SonarQube project key
2016-11-14T14:33:27.2730045Z ##[error]When connecting to a SonarQube server earlier than version 6.1, the following command line arguments are also required:
2016-11-14T14:33:27.2740046Z ##[error]- SonarQube project name
2016-11-14T14:33:27.2740046Z ##[error]- SonarQube project version
2016-11-14T14:33:27.2750047Z ##[error]The full path to a settings file can also be supplied. If it is not supplied, the exe will attempt to locate a default settings file in the same directory as the SonarQube Scanner for MSBuild.
2016-11-14T14:33:27.2750047Z ##[error]15:33:27.261 Pre-processing failed. Exit code: 1
我启动扫描仪:
SonarQube.Scanner.MSBuild.exe begin /k:ProjectKey /n:ProjectName /v:4.0.70
结束命令是
SonarQube.Scanner.MSBuild.exe end
Start 肯定在 end 之前被调用。 有什么问题?
【问题讨论】:
-
我将 SonarQube 安装恢复到 5.6 版。我更喜欢等到错误修复。
-
如stackoverflow.com/a/40382162/244993 中所说 - 这是关于 C# 插件,而不是关于 SonarQube,并且提到的错误已在 C# 插件版本 5.5 中修复。
-
我使用 C# 插件版本 5.5.0.479 再次更新到 SonarQube 6.1。不幸的是,我得到了同样的错误:
ERROR: Error during SonarQube Scanner execution java.lang.IllegalArgumentException: Start pointer [line=90, lineOffset=89] should be before end pointer [line=90, lineOffset=89] -
为什么不对答案stackoverflow.com/a/40382162/244993 发表评论?答案的作者是 fix 的作者,并且肯定比我更了解这个故事