当前位置:K88软件开发文章中心编程工具Gradle → 文章内容

Gradle Sonar Runner 插件

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-24 10:31:54

由 珍珍阿姨 创建, 最后一次修改 2016-08-12 Sonar Runner 插件Sonar runner 插件是目前仍是孵化状态。请务必注意,在以后的 Gradle 版本中,DSL 和其他配置可能会有所改变。 Sonar Runner 插件提供了对 Sonar,一个基于 web 的代码质量监测平台的集成。它基于 Sonar Runner,一个分析源代码及构建输出,并将所有收集的信息储存在 Sonar 数据库的 Sonar 客户端组件。相比单独使用 Sonar Runner,Sonar Runner 插件提供了以下便利:自动配置 Sonar Runner 可以通过一个正规的 Gradle 任务来执行 Sonar Runner,这使得在任何 Gradle 可用的地方,它都可以用(开发人员构建,CI 服务器等),而无需下载,安装,和维护 Sonar Runner 的安装。通过 Gradle 构建脚本动态配置 根据需要,可以利用 Gradle 脚本的所有特性去配置 Sonar Runner。提供了广泛范围的默认配置 Gradle 已经有很多 Sonar Runner 成功分析一个项目所需的信息。基于这些信息对 Sonar Runner 进行预配置,减少了许多手动配置的需要。插件状态和兼容性Sonar Runner 插件是 Sonar 插件的继任者。目前它还在孵化中的状态。该插件基于 Sonar Runner 2.0,这使它与 Sonar 2.11 或更高的版本相兼容。不同于 Sonar 插件,Sonar Runner 插件与 Sonar 3.4 或更高的版本一起使用时也表现正常。入门若要开始,请对要分析的项目配置使用 Sonar Runner 插件。配置使用 Sonar Runner 插件build.gradle apply plugin: "sonar-runner" 假设一个本地的 Sonar 服务使用开箱即用的设置启动和运行,则不需要进一步的强制性的配置。执行 gradle sonarRunner 并等待构建完成,然后打开 Sonar Runner 输出结果的底部所指示的网页。你现在应该能够看到分析结果了。在执行 sonarRunner 任务前,所有产生输出以用于 Sonar 分析的需要都需要被执行。通常情况下,它们是编译任务、测试任务和代码覆盖任务。为了满足这些需要,如果应用了 java 插件,Sonar Runner 插件将从 sonarRunner 添加一个对 test 的任务依赖。根据需要,可以添加更多的任务依赖。配置 Sonar RunnerSonar Runner 插件向 project 添加了一个 SonarRunner 扩展,它允许通过被称为 Sonar 属性 的键/值对配置 Sonar Runner。一个典型的基线配置包括了 Sonar 服务器和数据库的连接设置。配置 Sonar 连接设置build.gradle sonarRunner { sonarProperties { property "sonar.host.url", "http://my.server.com" property "sonar.jdbc.url", "jdbc:mysql://my.server.com/sonar" property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver" property "sonar.jdbc.username", "Fred Flintstone" property "sonar.jdbc.password", "very clever" }} 对于标准的 Sonar 属性的完整列表,请参阅 Sonar 文档。如果你碰巧使用另外的 Sonar 插件,请参考它们的文档。或者,可以从命令行设置 Sonar 属性。有关更多信息,请参见第35.6节,“从命令行配置 Sonar 设置” 。Sonar Runner 插件利用 Gradle 的对象模型所包含的信息,提供了许多标准的 Sonar 属性的智能默认值。下表总结了这些默认值。注意,对于配置使用了 java-base 或 java 插件的project,有提供另外的默认值。对于一些属性(尤其是服务器和数据库的连接配置),确定留给 Sonar Runner 一个合适的默认值。表 36.1. 标准 Sonar 属性的 Gradle 默认值PropertyGradle 默认值sonar.projectKey"$project.group:$project.name" (所分析的层次结构的根项目,否则留给 Sonar Runner 处理)sonar.projectNameproject.namesonar.projectDescriptionproject.descriptionsonar.projectVersionproject.versionsonar.projectBaseDirproject.projectDirsonar.working.directory"$project.buildDir/sonar"sonar.dynamicAnalysis"reuseReports"表 36.2. 配置使用 java-base 插件时另外添加的默认值PropertyGradle 默认值sonar.java.sourceproject.sourceCompatibilitysonar.java.targetproject.targetCompatibility表 36.2. 配置使用 java 插件时另外添加的默认值PropertyGradle 默认值sonar.sourcessourceSets.main.allSource.srcDirs(过滤为只包含存在的目录)sonar.testssourceSets.test.allSource.srcDirs(过滤为只包含存在的目录)sonar.binariessourceSets.main.runtimeClasspath (过滤为只包含存在的目录)sonar.librariessourceSets.main.runtimeClasspath (过滤为仅包括文件 ;如果有必要会加上?rt.jar)sonar.surefire.reportsPathtest.testResultsDir (如果该目录存在)sonar.junit.reportsPathtest.testResultsDir (如果该目录存在)分析多项目构建Sonar Runner 插件能够一次分析整个项目的层次结构。它能够在 Sonar 的 web 界面生成一个层次图,该层次图包含了综合的指标且能够深入到子项目中。分析一个项目的层次结果还可以比单独分析每个项目花费更省时间。要分析一个项目的层次结构, 需要把 Sonar Runner 插件应用于层次结构的最顶层项目。通常(但不是一定)会是这个 Gradle 构建的根项目。与分析有关的信息作为一个整体,比如服务器和数据库的连接设置,必须在这一个 project 的 sonarRunner 块中进行配置。在命令行上设置的任何 Sonar 属性也会应用到这个 project 中。全局配置设置build.gradle sonarRunner { sonarProperties { property "sonar.host.url", "http://my.server.com" property "sonar.jdbc.url", "jdbc:mysql://my.server.com/sonar" property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver" property "sonar.jdbc.username", "Fred Flintstone" property "sonar.jdbc.password", "very clever" }} 在 subprojects 块中,可以配置共享子项目之间的配置。共享的配置设置build.gradle subprojects { sonarRunner { sonarProperties { property "sonar.sourceEncoding", "UTF-8" } }} 特定项目的信息在对应的 project 的 sonarRunner 块中配置。个别配置设置build.gradle project sonarRunner { sonarProperties {

[1] [2]  下一页


Gradle Sonar Runner 插件