题图:pexels
简介
P3C插件由阿里巴巴P3C项目组研发。这个项目组是阿里巴巴开发爱好者自发组织形成的虚拟项目组,把《阿里巴巴Java开发规约》强制条目转化成自动化插件,并实现部分的自动编程。
插件有哪些功能?
为了让开发者更加方便、快速将规范推动并实行起来,阿里基于手册内容,研发了一套自动化的IDE检测插件(IDEA、Eclipse)。
该插件在扫描代码后,将不符合规约的代码按Blocker/Critical/Major三个等级显示在下方,甚至在IDEA上,我们还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。
对于历史代码,部分规则实现了批量一键修复的功能,如此爽心悦目的功能是不是很值得拥有?提升代码质量,提高团队研发效能,插件将会一路同行。
言归正传,既然知晓了神器插件的功能,那么下面介绍如何在Eclipse IDE 中安装该插件和使用
1、插件安装
环境:JDK1.8,Eclipse4+。有同学遇到过这样的情况,安装插件重启后,发现没有对应的菜单项,从日志上也看不到相关的异常信息,最后把JDK从1.6升级到1.8解决问题。
Help -> Install New Software...
![e6fe893dbb55a5814a766f4e98eaf70d.png](https://img-blog.csdnimg.cn/img_convert/e6fe893dbb55a5814a766f4e98eaf70d.png)
输入Update Site地址:https://p3c.alibaba.com/plugin/eclipse/update 回车,然后勾选Ali-CodeAnalysis,再一直点Next Next...按提示走下去就好。然后就是提示重启了,安装完毕。
![e4eef87525f54fbcb5fd20740f5b84da.png](https://img-blog.csdnimg.cn/img_convert/e4eef87525f54fbcb5fd20740f5b84da.png)
注意:有同学反映插件扫描会触发很多 "JPA Java Change Event Handler (Waiting)" 的任务,这个是Eclipse的一个bug,因为插件在扫描的时候会对文件进行标记,所以触发了JPA的任务。卸载JPA插件,或者尝试升级到最新版的Eclipse。附:JPA project Change Event Handler问题解决
2、插件使用
目前插件实现了开发手册中的53条规则,大部分基于PMD实现,其中有4条规则基于Eclipse实现,支持4条规则的QuickFix功能。
- 所有的覆写方法,必须加@Override注解,
- if/for/while/switch/do等保留字与左右括号之间都必须加空格,
- long或者Long初始赋值时,必须使用大写的L,不能是小写的l)
- Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals。
目前不支持代码实时检测,需要手动触发,希望更多的人加入进来一起把咱们的插件做得越来越好,尽量提升研发的使用体验。
3、代码扫描
可以通过右键菜单、Toolbar按钮两种方式手动触发代码检测。同时结果面板中可以对部分实现了QuickFix功能的规则进行快速修复。
4、触发扫描
在当前编辑的文件中点击右键,可以在弹出的菜单中触发对该文件的检测。
![9bf6fb306aee6a21986a806967614247.png](https://img-blog.csdnimg.cn/img_convert/9bf6fb306aee6a21986a806967614247.png)
在左侧的Project目录树中点击右键,可以触发对整个工程或者选择的某个目录、文件进行检测。
![f5e18bf1c0e55be5e44659207a37d239.png](https://img-blog.csdnimg.cn/img_convert/f5e18bf1c0e55be5e44659207a37d239.png)
也可以通过Toolbar中的按钮来触发检测,目前Toolbar的按钮触发的检测范围与您IDE当时的焦点有关,如当前编辑的文件或者是Project目录树选中的项,是不是感觉与右键菜单的检测范围类似呢。
![f27fe9dd0f770b3a34bb877ed0ab304b.png](https://img-blog.csdnimg.cn/img_convert/f27fe9dd0f770b3a34bb877ed0ab304b.png)
5、扫描结果
简洁的结果面板,按规则等级分类,等级->规则->文件->违规项。同时还提供一个查看规则详情的界面。
清除结果标记更方便,支持上面提到的4条规则QuickFix。
![f79ff525d4d730568ecd6222486a7bdb.png](https://img-blog.csdnimg.cn/img_convert/f79ff525d4d730568ecd6222486a7bdb.png)
查看所有规则
![bb0d90f9396f6f24e52548631734583e.png](https://img-blog.csdnimg.cn/img_convert/bb0d90f9396f6f24e52548631734583e.png)
![1f4f5d5df26c6a455126f7b3aed7ebfd.png](https://img-blog.csdnimg.cn/img_convert/1f4f5d5df26c6a455126f7b3aed7ebfd.png)
国际化