当前位置: 首页 > 知识库问答 >
问题:

SonarQube 5.1.2无法识别声纳源的相对路径

钱星辰
2023-03-14

下面是SonarQube分析的目录结构。

我使用的是Sonarqube5.0和C++社区插件Version0.9.4以及Sonar-Runner2.4和sonar-project.properties文件中提到的sonar.sources=../checkoutdir1。这就像一种魅力。

然后我升级到Sonarqube5.1.2,保持C++社区插件、sonar-runner和sonar-project.properties文件不变。现在sonar-runner失败,出现以下错误:

14:18:17.531 INFO  - Base dir: D:\CheckoutDir2
14:18:17.531 INFO  - Working dir: D:\CheckoutDir2\.sonar
14:18:17.531 INFO  - Source paths: ../CheckoutDir1
.
.
.
.

    ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
    at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
    at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
    at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
    at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
    at org.sonar.runner.api.Runner.execute(Runner.java:100)
    at org.sonar.runner.Main.executeTask(Main.java:70)
    at org.sonar.runner.Main.execute(Main.java:59)
    at org.sonar.runner.Main.main(Main.java:53)
Caused by: java.lang.NullPointerException
    at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:98)
    at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
    at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
    at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
    at sun.nio.fs.AbstractPath.resolve(AbstractPath.java:53)
    at org.sonar.api.batch.fs.internal.DefaultInputFile.path(DefaultInputFile.java:72)
    at org.sonar.api.batch.fs.internal.DefaultInputFile.file(DefaultInputFile.java:64)
    at org.sonar.api.batch.fs.internal.PathPattern$RelativePathPattern.match(PathPattern.java:101)
    at org.sonar.batch.scan.filesystem.LanguageDetection.isCandidateForLanguage(LanguageDetection.java:124)
    at org.sonar.batch.scan.filesystem.LanguageDetection.language(LanguageDetection.java:97)
    at org.sonar.batch.scan.filesystem.InputFileBuilder.completeAndComputeMetadata(InputFileBuilder.java:100)
    at org.sonar.batch.scan.filesystem.FileIndexer$1.call(FileIndexer.java:157)
    at org.sonar.batch.scan.filesystem.FileIndexer$1.call(FileIndexer.java:154)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)

奇怪的是,sonar-runner中的调试参数-x、-e、-dsonar.verbose=true除了java.lang.NullPointerException之外没有显示任何其他信息。

如果我提到Sonar.Source的绝对路径,SonarQube分析可以很好地工作。

请建议如何解决这个问题?此外,Sonarqube5.1.2应该清楚地打印关于无法从相对路径定位Sonar.sources的调试日志

共有1个答案

孟鸿德
2023-03-14

正如我在日志中看到的,sonar正在考虑CheckoutDir2作为你的基本目录,这是不正确的,

您应该设置sonar.projectbasedir= /projectname/checkoutdir1 ,然后再设置sonar.sources=.,这样,即使sonar-project.properties文件与源代码不在同一目录中,它仍然可以正常工作。

 类似资料:
  • 我最近尝试导入一个现有的Gradle项目,使用启动窗口中的“Open project”选项和现有的build.Gradle文件自动设置该项目。 就在我这样做之后,IntelliJ中出现了一条错误消息,说: 看起来像这样,IntelliJ抱怨我没有将play框架添加到我的PATH变量中。尽管外壳的输出告诉了某事物。其他: 我还编写了一个简单的类来显示IntelliJ使用的PATH变量: 当我运行这个

  • 问题内容: 我正在尝试安装,但正在运行return 在使用各种软件包之前,这种情况会持续一段时间,然后再返回其他任何内容。给我: 如何安装?在github页面的自述文件中使用了(而不是)。我的Go版本是。 问题答案: 这些问题与无效有关。 我认为您已安装Go in 。 因此,将您的路径更改为的值。 看来您的工作空间(GOPATH)位于。 这可能会解决您的问题。 将此添加到bash配置文件的底部,位

  • 我在Windows8机器上从命令行运行Grunt时出现问题。 我的研究表明,最常见的解决方案是安装grunt-cli,因为Grunt不再是全局的。我还需要确保实际安装了Grunt任务运行程序,因为它不是与grunt-cli一起安装的。 其他解决方案指向PATH系统环境变量,但它似乎与我预期的一样: null

  • 伙计们,我不能在命令行编译或运行我的任何程序。我在路径中设置了的位置,但这没有任何作用。还有其他的修复吗? 我的路是这样的: C:\程序文件(x86)\Java\JRE1.8.0_40\bin;C:\ProgramData\Oracle\Java\JavaPath;C:\程序文件(x86)\nVidia Corporation\PhysX\common;C:\Windows\System32;C:

  • 我想将dir中的环境文件从本地计算机复制到远程计算机。 根据这个答案,我尝试了以下方法,但得到了一个错误: 编辑2:以下是工作原理