SonarQube Eclipse插件不遵循Eclipse链接,并且" sonar.sources"必须是相对路径

时间:2015-09-14 21:28:14

标签: eclipse plugins sonarqube analysis

  • Eclipse:" Luna"第2版​​(4.4.2)[20150219-0600]
  • 声纳:5.1(在Java 1.7.0_76下)
  • Sonar Eclipse插件:3.5.0.20150804-1512-RELEASE

我们有一个包含许多项目的大型企业系统,出于各种不可协商的原因,我们在本地工作空间目录中创建Eclipse项目,但使用Eclipse链接指向另一个目录中的源。

例如,假设我的Foo项目基于" C:/ EclipseWorkspace / Foo"并且有一个" src"像这样链接在顶层:

 C:/EclipseWorkspace/Foo/src -> C:/CodeRepository/Foo/src

我想为插件设置以下非常简单的设置:

 sonar.sources = C:/CodeRepository/Foo/src

问题是,Sonar Eclipse插件似乎不支持使用绝对路径。当我运行分析时,我在控制台上收到以下错误:

Retrieve remote issues of project Foo...
Start SonarQube analysis on Foo...
INFO: SonarQube Server 5.1
17:16:18.565 INFO  - Incremental mode
17:16:18.609 INFO  - Load global repositories
17:16:18.862 INFO  - Load global repositories (done) | time=253ms
17:16:18.863 INFO  - Server id: 20150910100331
17:16:18.865 INFO  - User cache: C:\Users\eryq\.sonar\cache
17:16:18.870 INFO  - Install plugins
17:16:18.894 INFO  - Include plugins: 
17:16:18.894 INFO  - Exclude plugins: devcockpit, buildstability, pdfreport, report, buildbreaker, views, jira
17:16:19.375 ERROR - Invalid value of sonar.sources for Foo
Exception in thread "main" org.sonar.runner.impl.RunnerException: Unable to execute Sonar 
    ...
Caused by: java.lang.IllegalStateException: The folder 'C:/CodeRepository/Foo/src' does not exist for 'Foo' (base directory = C:\EclipseWorkspace\Foo)
    at org.sonar.batch.scan.ProjectReactorBuilder.checkExistenceOfPaths(ProjectReactorBuilder.java:427)
    at ...

注意最后一行:

  

文件夹' C:/ CodeRepository / Foo / src'并不存在' Foo' (基础   directory = C:\ EclipseWorkspace \ Foo)

由于Eclipse插件不允许我覆盖 projectBaseDir ,如何让它理解 sonar.sources 实际上在该树之外的另一个目录中?这似乎是一个插件错误:如果我需要指向 sources 目录的列表,插件应该让我指定绝对路径(如果需要)。

提前致谢,

Eryq

1 个答案:

答案 0 :(得分:0)

这不是SonarQube Eclipse特有的,与绝对路径无关:任何SonarQube分析都要求源文件夹位于项目baseDir下。

允许您覆盖sonar.projectBaseDir是一个简单的解决方法。但是我不确定这会在问题映射到Eclipse资源时导致其他问题......随意测试并提交拉取请求。