- 蝕: 「露娜」 第2版(4.4.2)[20150219-0600]
- 聲納:5.1(下的Java 1.7.0_76)
- 聲納Eclipse插件:3.5.0.20150804-1512-RELEASE
我們有一個大的企業系統中的許多項目,以及我們在當地創造我們的Eclipse項目的各種不可轉讓的原因工作空間目錄,但使用Eclipse鏈接指向另一個目錄中的源。SonarQube Eclipse插件不跟隨的Eclipse鏈接,而 「sonar.sources」 必須是相對路徑
例如,假設我美孚項目是基於在「C:/ EclipseWorkspace /富」,有一個「SRC」鏈接在最頂層是這樣的:
C:/EclipseWorkspace/Foo/src -> C:/CodeRepository/Foo/src
我想有以下該插件非常簡單的設置:
sonar.sources = C:/CodeRepository/Foo/src
的問題是,聲納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 /美孚/ src目錄」不爲'存在富」(基地 目錄= C:\ EclipseWorkspace \富)
由於Eclipse插件不允許我覆蓋projectBaseDir,我怎麼讓它明白塔t sonar.sources實際上在該樹之外的另一個目錄中?這看起來像一個插件錯誤:如果我需要指向源目錄的列表,插件應該讓我指定絕對路徑,如果需要的話。
由於提前,
Eryq
Julien,你是插件開發者嗎?我從來沒有在Eclipse插件上工作過,而且我也沒有時間去調查這些。如果這是一個簡單的解決方案,你可以幫我們一個忙,只是允許它嗎?另外,我不明白爲什麼Sonar會以這種方式限制「源」目錄列表:這看起來像Sonar「爲了自己的利益而太聰明」。 :-)如果用戶經歷了指定「源」目錄列表的麻煩,它應該假定他們這樣做是出於某種原因。 –
是的,我是這個插件的主要開發人員。關於源的限制,有一些很好的理由:在DB中,文件的標識符是來自項目baseDir的相對路徑。此外,UI還將項目內容作爲從basedir開始的樹顯示。擁有這個basedir以外的文件將不適合這個模型。 –
我完全理解需要通過相對路徑唯一地識別Sonar組件。在我們的例子中,相對路徑是完全相同的。只是現在,我們的大部分企業仍在使用ClearCase進行源代碼控制,出於各種原因,我們不希望Eclipse項目的頂級目錄成爲ClearCase目錄。 Eclipse鏈接使這種配置成爲可能,但他們打破了Sonar的插件。當我們遷移到Git時,這個問題應該消失,但這需要時間。 :-( –