2014-09-12 23 views
3

我正在開發一個我試圖用SonarQube開始組件化的大型遺留項目。我正在配置一個多模塊項目sonar-project.properties。這工作正常。但是,我有一個問題正在識別源文件夾。sonar-project.properties中的Globes

不幸的是,我們的模塊在文件系統中並不整潔。該項目分爲許多Eclipse項目,並且幾個Eclipse項目一起形成一個模塊。當然,我可以列舉所有的項目,但這很繁瑣,因爲其中有很多項目。這裏有一個(簡體)版本,我們的目錄結構:

projects/ 
    moduleAsubmodule1/ 
     src/ 
      com/mycompany/moduleA/submodule1/ 
    moduleAsubmodule2/ 
     src/ 
      com/mycompany/moduleA/submodule2/ 
    moduleBsubmodule1/ 
     src/ 
      com/mycompany/moduleB/submodule1/ 
    moduleBsubmodule2/ 
     src/ 
      com/mycompany/moduleB/submodule2/ 
    moduleBsubmodule3/ 
     src/ 
      com/mycompany/moduleB/submodule3/ 

想象更多的模塊和子模塊,其中項目名稱是串聯的,但包名是很好的劃分,使其更容易在那些區分。

moduleA.sonar.projectBaseDir=. 
moduleA.sonar.sources=projects/**/src/com/mycompany/moduleA/**/* 
moduleA.sonar.test=projects/**/*.test/src/com/mycompany/moduleA/**/* 

根據the documentation,這應該是排除的可能。但是,我收到以下錯誤消息:

16:10:44 ERROR: Unable to execute Sonar 
16:10:44 ERROR: Caused by: The folder 'projects/**/src/com/mycompany/mymodule/**/*' does not exist for 'XXX:XXX:mymodule' (base directory = D:\XxxSonar\.) 

所以我猜globs不適用於來源?如果確實如此,我該怎麼辦?

我們使用SonarQube 4.1.2。

回答

0

指定「sonar.sources」時不允許使用通配符。相反,您應該使用允許縮小源文件和測試文件的屬性。見the documentation page on how to include or exclude files to narrow the focus

+0

不幸的是,'狹窄的焦點'幫助頁面(我已經在問題中已經鏈接到)並沒有幫助我解決這個問題。我不清楚哪些屬性可以用來達到我想要的效果。我已經更新了這個問題,以便更清楚地顯示我們的目錄結構是什麼樣子的;希望有所幫助。 – jqno 2014-09-15 11:32:33

0

我有同樣的問題,但我這樣做是這樣解決的:

sonar.sources=. 
sonar.inclusions=projects/*/src/**/* 

的夾雜物/排除的屬性支持通配符。您的測試也是如此:

sonar.test.inclusions=projects/*/*.test/src/**/* 
相關問題