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)

相关推荐

  • 富文本编辑器官网_富文本编辑器是做什么的

    富文本编辑器官网_富文本编辑器是做什么的富文本编辑器,能够使web页面像word一样,实现对文本的编辑,通常应用在一些文本处理比较多的系统中。现在业界有很多成熟的富文本编辑器,比如功能齐全啊TinyMCE、轻量高效的wangEditor、百度出品的UEditor等。富文本编辑器很多,但是却很少思考如何从零开始,实现一…

    2023-07-18
    140
  • JuiceFS v0.17 发布,通过 1270 项 LTP 测试!

    JuiceFS v0.17 发布,通过 1270 项 LTP 测试!小伙伴们大家好,JuiceFS v0.17 在国庆小长假来临之际如期发布了!这是我们在 2021 年秋季推出的第二个版本,让我们直奔主题,看看都有哪些新变化吧。 本次更新累计 80+ 提交,共有 9

    2023-04-23
    150
  • 关于Navicat15的激活使用

    关于Navicat15的激活使用注意 一定要按照步骤激活 第一步:打开注册机器,然后点击patch,找到安装Navicat15目录下面的exe文件 第二步:打开Navicat启动文件,然后点击注册按钮,然后点击注册机器的Genera

    2023-05-11
    138
  • mysql中orderby_算法艺术与信息学竞赛pdf

    mysql中orderby_算法艺术与信息学竞赛pdf1一般的排序模式分为以下几种:sort_key, rowid,表明排序缓冲区元组包含排序键值和原始表行的行id,排序后需要使用行id进行回表,这

    2023-06-27
    132
  • 深入理解Python元组

    深入理解Python元组在Python中,元组(Tuple)是一个不可变序列,与列表非常相似。在定义时,元组使用小括号“()”表示,各元素之间使用逗号“,”分隔。元组与列表的主要区别在于,元组内的元素不可被修改、删除或新增,因此其更可靠、更轻量级,也更适合用于不需要修改的数据。

    2024-03-05
    96
  • 什么是数据结构?_数据结构主要研究什么

    什么是数据结构?_数据结构主要研究什么什么是数据结构?

    2023-07-08
    129
  • 综合脚手架工程量怎么算_脚手架工程资质

    综合脚手架工程量怎么算_脚手架工程资质高日耀 资深数据库内核研发 毕业于华中科技大学,喜欢研究主流数据库架构和源码,并长期从事分布式数据库内核研发。曾参与分布式 MPP 数据库 CirroData 内核开发(东方国信),现主要负责 MyS

    2023-04-27
    156
  • 图文详解 HDFS 的工作机制及其原理[亲测有效]

    图文详解 HDFS 的工作机制及其原理[亲测有效]大家好,我是大D。 今天开始给大家分享关于大数据入门技术栈——Hadoop的学习内容。 初识 Hadoop 为了解决大数据中海量数据的存储与计算问题,Hadoop 提供了一套分布式系统基础架构,核心内

    2023-05-17
    143

发表回复

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