"sonar.libraries" 在现代 Gradle Android 项目中的正确配置

Proper configuration for "sonar.libraries" in a modern Gradle Android project

我想达到的目标:

在声纳中,可以通过设置 属性 "sonar.libraries" 来跟踪整个项目中使用的第三方依赖项,也许还有更多好处(例如检测哪些违规是由外部库引起的?)

我尝试做的事情:

我把值设为build/intermediates/pre-dexed/debug/*.jar,但是这个好像效果不大

问题:

,对名为 "sonar.libraries" 的 属性 有何建议?

我们需要在检测到Android项目时进行特殊处理。正确设置 sonar.java.libraries 是要求之一。票已经存在,请随意投票或提供拉取请求。 https://jira.sonarsource.com/browse/SONARGRADL-6

更新:我们发布了本机支持 Android 项目的插件 (currently RC2) 2.1 版。属性 sonar.java.[test.]binariessonar.java.[test.]libraries 将自动填充。

pre-dex 文件夹在我看来也是完美的选择。不幸的是,如果您查看此文件夹中的 jars,您会发现它们不包含已编译的 class,而是包含 dex 文件。一个 dex 文件是 "dalvik executable",它是 Android material,Sonar 不能对它做任何事情。

我设法通过在 sonar.libraries 属性.

中声明 build/intermediates/exploded-aar/**/*.jar 来引用 一些 我的依赖项

通过这一行,您将看到您的项目所依赖的所有 "android librairies" (aar)。我还没有设法追踪所有其他普通 java 图书馆 (jar)