2015-09-01 192 views
6

我想達到的目標:正確配置

在聲納,可以跟蹤整個項目中使用第三方的依賴通過設置屬性「sonar.libraries 「也許還有更多優惠

我試圖做的(如檢測其違規行爲被外部庫造成的呢?):

我將值設置爲build/intermediates/pre-dexed/debug/*.jar但這似乎很少有EF FECT。

問:

Since it is no longer needed to use the "libs" folder for third party dependencies,什麼是所謂的 「sonar.libraries」 屬性的建議?

回答

4

我們需要在檢測到Android項目時執行特殊處理。正確設置sonar.java.libraries是其中一項要求。一張票已經存在,隨時可以投票或提供拉請求。 https://jira.sonarsource.com/browse/SONARGRADL-6

更新:我們發佈了本機支持Android項目的插件(currently RC2)的2.1版本。屬性sonar.java.[test.]binariessonar.java.[test.]libraries將自動填充。

+0

太棒了! 「sonar.java.test.binaries」和「sonar.java.version」屬性怎麼樣? – Alix

+0

@Alix他們也支持,我會更新我的答案。 –

+0

那麼不需要指定sonar.java.version了嗎? – Alix

1

pre-dex文件夾在我看來也是最佳人選。不幸的是,如果你看看這個文件夾中的jar文件,你會發現它們不包含編譯類,而是dex文件。一個dex文件是一個「dalvik可執行文件」,它是Android的材料,Sonar不能做任何事情。

我成功地通過在sonar.libraries屬性中聲明build/intermediates/exploded-aar/**/*.jar來設法引用某些的依賴關係。

通過這一行,您將看到您的項目所依賴的所有「android librairies」(aar)。我還沒有設法跟蹤所有其他普通java庫(jar)

+0

的討論aar文件應該在根級別有一個classes.jar,任何東西都不應該放鬆。 – bmg

+0

@bmg:夥計,剛剛提醒我們,一個aar包含一個.jar和res /文件夾之前,請先閱讀問題和答案; – ldavin

+0

洛爾我的壞;另一種方法是提取所有的aar依賴關係,並將提取的jar文件添加到'sonar.java.libraries'屬性中。 – bmg