我有一個使用聲納進行分析的JAVA項目。我擁有的一些java包都在源文件夾下。我也有一些測試文件,我在不同的文件夾下。現在,在Sonar中,我組織了不同結構下的項目,即對於「搜索」項目,我只想包含「搜索」包。使用sonar.exclusion屬性很容易實現這些排除。但是,我的問題是測試如何?我怎麼能排除一些包?因爲從我的測試中,即使我的源文件和測試文件夾使用相同的結構,當我指定「sonar.exclusions」時,測試包也不會自動排除。SONAR - 如何排除在「sonar.test」下定義的軟件包
我的文件夾結構:
/src/com/domain/
-- search/
-- utils/
-- pooling/
-- category/
/test/src/com/domain/
-- utils/
-- pooling/
聲納性能:
<property name="sonar.sources" value="${path}/src" />
<property name="sonar.tests" value="${path}/test/src" />
<property name="sonar.exclusions" value="com/domain/utils/**/*,com/domain/pooling/**/*,com/domain/category/**/*" />
所以,我想只包括 「搜索」 包。上面的代碼的工作方式使得SONAR只分析我的「搜索」包。該軟件包可以在SONAR「組件」選項卡中看到。不幸的是,除了「搜索」組件外,我還可以看到「util」和「pooling」組件。我做了一些測試,並確定這兩個組件(utils和pooling)是「sonar.tests」屬性的結果。儘管如此,即使組件中出現「util」和「pooling」,SONAR也會在其下面顯示零個文件。因此,回到我的問題,無論如何,我可以做的,以排除「組件」下顯示的「util」和「pooling」?也許使用屬性(即聲納測試排除)?
順便說一句,我使用SONAR 2.11,並在Red Hat Linux下運行。我正在使用SONAR-TASK 1.2。
任何幫助,歡迎和讚賞!謝謝!
與我使用「sonar.exclude」相比,這有什麼不同?這種方式看起來與我目前使用的幾乎相同,只是它使用的是GUI,我錯了嗎?這怎麼解決我的問題過濾「測試」? 如果這是行得通的,我怎樣才能以編程方式實現這一點?謝謝您的幫助。 – lwijono
我發佈這個作爲替代。基本上他們都做同樣的事情。我真的很驚訝,測試顯示在組件中。它不應該那樣做。該文件說,排除將從src目錄進行評估。所以我不會認爲測試將被分析。你看到組件中有任何類嗎? – oers
我需要首先澄清這一點,因此在組件中,我可以看到「測試」內的軟件包,所以我只能看到軟件包,而不是「測試」作爲組件。在這些包裹裏面,什麼都沒有。沒有分析。我問的原因是因爲我發現它在儀表板中看到它很煩人,因爲它給人的印象是這些軟件包包含在分析中,即使它們不是。 – lwijono