Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量。官网 默认支持Java语言的静态代码审查,可以通过添加插件的方式来支持绝大多数主流开发语言的代码审查,插件地址。还可以跟代码检查工具Android Lint,FindBugs,PMD等、持续集成工具Jenkins…

一、sonarQube能做什么

Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量。官网 默认支持Java语言的静态代码审查,可以通过添加插件的方式来支持绝大多数主流开发语言的代码审查,插件地址。还可以跟代码检查工具Android Lint,FindBugs,PMD等、持续集成工具Jenkins,Hudson集成起来。通过用户加载的插件检测再对结果加工处理,以量化的方式去度量代码质量的变化。

二、准备工作

安装准备工作,以win10平台下Android为例,其他系统参考官网SonarQube SetUp:

1.JDK8以上;

2.SonarQube7.0,在网页末尾处找到Historical Downloads,show all versions

3.SonarQube Scanner ,也可替换为sonar-runner

4.sonar-l10n-zh github上的SonarQubeCommunity支持了官网国际化,需要加载插件实现

5.数据库(非必需)

三、配置

1.解压缩SonarQube和SonarQube Scanner,将下载好的sonar-l10n-zh放到SonarQube安装目录下的extensions\plugins文件夹中,运行SonarQube目录下面bin文件夹下对应于自己系统的StartSonar.bat就可以了,例如我的路径是:D:\Sonar\sonarqube-7.0\sonarqube-7.0\bin\windows-x86-64,成功运行后打开浏览器输入http://localhost:9000/,用户名和密码默认admin,进入以后就打开Sonar页面了。默认语言是中文,只不过中文化有些不彻底。

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

2.打开SonarQube目录下conf文件夹下的sonar.properties,配置:

sonar.sorceEncoding=UTF-8

sonar.login=admin

sonar.password=admin

3.进入解压缩后的Scanner目录,将bin路径加入到环境变量path中进行配置,然后打开Scanner目录下的sonar-scanner.properties文件,配置:

sonar.sorceEncoding=UTF-8

sonar.login=admin

sonar.password=admin

sonar.scm.disablied=true

配置完成之后,运行cmd,输入sonar-scanner -version,看到版本信息就说明配置成功了

4.登陆成功后,进入到配置 -> Marketplace -> 搜索Android安装,或者下载离线包,将离线包插件放到SonarQube的extensions\plugins目录下,此处我已安装好,如图所示:

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

安装完成之后,可以在质量配置里面设置Java默认检测规范:

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

这里可以看到默认是P3C,即为阿里开发规范的PMD插件,后面会再做说明。

四、项目配置以及运行Sonar分析

项目上配置有两种方式,可以采用我们上面下载的SonarQube Scanner,或者在Android Studio中的顶层build.gradle中使用(推荐)。下面分别介绍:

1.使用SonarQube Scanner,在项目根目录下,新建sonar-project.properties文件,配置以下信息:

sonar.projectKey=P3CDemo

sonar.projectName=P3CDemo

sonar.projectVersion=1.0

sonar.sources=app/src/main/java

sonar.binaries=app/build/intermediates/classes/

sonar.language=java

sonar.sourceEncoding=UTF-8

sonar.profile=Android Lint

打开cmd,进入项目所在根目录,输入命令:sonar-runner,分析成功后出现:EXECUTION SUCCESS

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

注意在scanner过程中,之前开启的StartSonar.bat不能关闭

之后就可以在Sonar界面看到项目的质量分析图了:

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

2.在Android Studio中配置Sonar插件:

在AS中打开setting-Plugins-Browse repositories,搜索sonar,点击SonarLint安装。

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

然后在Other Settings下面配置Server信息,新建一个SonarQube Server用于设置连接服务,设置完成以后可以点击update binding尝试连接一下 在test binding的时候可能会出现提示某个插件版本比较低的情况,可以在sonar plugin中有针对性下载更新插件。

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

在下拉框中选择Login/Password账号密码登陆

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

接下来在SonarLint Project Settings,勾上enable选项,选择刚才新建的那个Server,选择SonarQube project(这个project应该是之前在第二步Sonar-runner 分析过的,server里面有记录的)。

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

各位看官不要着急,仅剩下最后一步即可完成配置了。

在Android Studio项目层级的build.gradle文件中,设置:

在buildscript后添加:

plugins {
    // 添加插件信息
    id "org.sonarqube" version "2.6.2"
}

subprojects {
    sonarqube {
        properties {
            property "sonar.host.url", "http://localhost:9000/"
            property "sonar.sourceEncoding", "UTF-8"
            property "sonar.projectKey", "MOGUTest"
            property "sonar.projectName", "MOGUTest"
            property "sonar.projectVersion", "1.0"
            property "sonar.sources", "src/main/java"
            property "sonar.binaries", "build/intermediates/classes"
        }
    }
}

这里需要注意,在sonar.source以及sonar.binaries后文件位置去掉了app/ 区别于sonar-project.properties的配置

至此,可以执行代码检测任务了: 在目录下命令行执行 ./gradlew.sh sonarqube或者执行gradle中的project -> other -> sonarqube

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

可以在sonar中看到项目代码质量基于sonar java或者Android Lint检测的结果。接下来我们看如何实现将阿里巴巴规范的插件加入带sonar的配置检测中:

四、阿里开发规范之PMD插件整合

sonar-pmd是sonar官方的支持pmd的插件,但是还不支持p3c,需要在pmd插件源码中添加p3c支持(p3c是阿里在pmd基础上根据阿里巴巴开发手册实现了其中的49开发规则)。github上已有的sonar-p3c-pmd地址:github.com/mrprince/so… ,在wiki中有具体安装说明,需要重新编译jar包。 目前阿里P3C-PMD中java规则有53条,可以从此处查找已编译好的sonar-pmd插件,将插件放到sonarQube的extensions\plugins目录下,在sonar上找到配置 -> 系统 -> Restart Server

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

重启成功再次登陆后,在质量配置里面创建一个新的代码规则来匹配P3C的标准:

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

此时的P3C规则还未激活,并且没有规则制度,因此需要在sonar中查到到符合P3C的规则进行批量修改:

首先激活P3C,点击P3C红色未激活处,变为绿色已激活状态即可,接下来进行批量修改

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

此处为已添加效果,未添加或者要新添加规则都可以通过批量修改进行导入。

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

将P3C设为默认代码检测规范,执行gradle,此处写了一个阻断类型的代码(坏味道)来检测有效性:

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

Android Studio中集成sonarQube添加阿里开发规范PMD插件[通俗易懂]

对于如何添加团队定制的代码规范,可以参考上面下载的P3C-PMD插件里的写法

如若有误,欢迎交流

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13917.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注