我们有一个包含许多项目的大型企业系统,出于各种不可协商的原因,我们在本地工作空间目录中创建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
答案 0 :(得分:0)
这不是SonarQube Eclipse特有的,与绝对路径无关:任何SonarQube分析都要求源文件夹位于项目baseDir下。
允许您覆盖sonar.projectBaseDir
是一个简单的解决方法。但是我不确定这会在问题映射到Eclipse资源时导致其他问题......随意测试并提交拉取请求。