2015-09-01 144 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