插件介绍
阿里技术公众号于今年的2月9日首次公布《阿里巴巴Java开发规约》,瞬间引起全民代码规范的热潮,上月底又发布了PDF的终极版,大家踊跃留言,期待配套的静态扫描工具开放出来。为了让开发者更加方便、快速将规范推动并实行起来,阿里巴巴基于手册内容,研发了一套自动化的IDE检测插件(IDEA、Eclipse)。该插件在扫描代码后,将不符合规约的代码按Blocker/Critical/Major三个等级显示在下方,甚至在IDEA上,还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。对于历史代码,部分规则实现了批量一键修复的功能。
安装插件
你可以去github下载: https://github.com/alibaba/p3c或者在Github直接搜索p3c,下载的插件包括eclipse版, IDEA版,以及阿里巴巴Java开发手册等等。
你也可以直接使用IDE的插件安装, 方法如下:
Eclipse版安装方法: Help >> Install New Software 然后点击Add, 添加一个下载地址,输入https://p3c.alibaba.com/plugin/eclipse/update即可看到安装列表。然后一路Next就可以了,也可以通过Help >> Check for Udates进行插件新版检测。
IDEA版安装方法: Settings -> Plugins -> Browse repositories , 输入Alibaba Java Coding Guidelines(其实只需要输入alibaba前缀,就会显示在搜索列表的第一个或者是前面几个当中), 点击Install,然后也是一路Next就完成了安装
Eclipse版:
目前该版本插件实现了开发手册中的53条规则,大部分基于PMD实现,其中有4条规则基于Eclipse实现,支持4条规则的QuickFix功能。
* 所有的覆写方法,必须加@Override注解,
* if/for/while/switch/do等保留字与左右括号之间都必须加空格,
* long或者Long初始赋值时,必须使用大写的L,不能是小写的l)
* Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals。
安装成功后,Window ->Preferences 中就会多出Alibaba Code Analysis ,点击后就会显示该插件所扫描的规则
![](https://img.haomeiwen.com/i8921572/3e1d85654b77ed3c.png)
在主界面会多出两个如下两个功能
![](https://img.haomeiwen.com/i8921572/a0bdd1058adfee10.png)
功能很简单,将鼠标放上去会有提示,一个是触发扫描的,一个是切换语言
代码扫描方式,选中需要扫描的工程,包,或者是类然后触发扫描:
触发扫描的方式,可以通过快捷键,右键菜单、Toolbar按钮三种方式手动触发代码检测,如下:
1:快捷键 Ctrl + Alt + Shift + J
2: 右键菜单,Toolbar方式如下图
![](https://img.haomeiwen.com/i8921572/3a6a4606c1397cb5.png)
扫描后的结果会用以下方式呈现
![](https://img.haomeiwen.com/i8921572/c0784080c91e3cab.png)
![](https://img.haomeiwen.com/i8921572/0007fea28d55cbbf.png)
![](https://img.haomeiwen.com/i8921572/2575a12aeea02117.png)
IDEA版
目前该版本插件实现了开发手册中的的53条规则,大部分基于PMD实现,其中有4条规则基于IDEA实现,并且基于IDEAInspection实现了实时检测功能。部分规则实现了Quick Fix功能。 目前插件检测有两种模式:实时检测、手动触发。
实时检测功能会在开发过程中对当前文件进行检测,并以高亮的形式提示出来,同时也可以支持Quick Fix,该功能默认开启,可以通过配置关闭。
检测结果高亮提示,并且鼠标放上去会弹出提示信息。
IntentionQuickFix功能
Alt+Enter键可呼出Intention菜单,不同的规则会提示不同信息的Quick Fix按钮
在某些情况下,我们不希望对代码提示违规信息,比如我们在阅读Github开源项目代码的时候,如果界面出现一堆红色、黄色的提示,此时心里肯定是飘过一万只草泥马。这个时候我们可以通过Inspection的设置关闭实时检测功能。
通过右键快速关闭(打开)所有规则的实时检测功能
2. 通过Settings >> Editor >> Inspections 进行手动设置
也可以关闭某条规则的实时检测功能或者修改提示级别。
可以通过右键菜单、Toolbar按钮、快捷键三种方式手动触发代码检测。同时结果面板中可以对部分实现了QuickFix功能的规则进行快速修复。
在当前编辑的文件中点击右键,可以在弹出的菜单中触发对该文件的检测。
在左侧的Project目录树种点击右键,可以触发对整个工程或者选择的某个目录、文件进行检测。
如果您打开了IDE的Toolbar,也可以通过Toolbar中的按钮来触发检测,目前Toolbar的按钮触发的检测范围与您IDE当时的焦点有关,如当前编辑的文件或者是Project目录树选中的项,是不是感觉与右键菜单的检测范围类似呢。
使用快捷键(Ctrl+Shift+Alt+J)触发弹出窗口,选择检测范围;您也可自定义快捷键。
检测结果直接使用IDEA Run Inspection By Name功能的结果界面,插件的检测结果分级也是为Blocker、Critical、Major。默认按等级分组,方便统计每个级别错误的数量。
默认情况我们在结果面板需要双击具体违规项才能打开对应的源文件,开启Autoscroll To Source选项,单击面板中的文件名、或者是具体的违规项的时候IDEA会自动打开对应的源文件。
对于实现Quick Fix的规则,在结果面板中可以直接一键修复注意:IDEA14、15可以通过左下角的灯泡进行一键修复操作。
面板中其他按钮的功能大家自行探索吧,就不一一赘述了
在提交代码框勾选Alibaba Code Guidelines选项
如果有违反手册的地方会提示是否继续提交,选择取消后会自动对修改的代码进行扫描
网友评论