开发者社区> 乔川> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

《阿里巴巴Java开发手册》IDEA插件与Eclipse插件使用指南

简介: 从插件安装、插件使用、代码扫描等方面,全面解决你关于阿里巴巴Java开发手册插件的使用疑问。
+关注继续查看

首先非常感谢大家对插件的支持与意见,这里详细介绍一下《阿里巴巴Java开发手册》IDEA插件与Eclipse插件的安装使用。

关于规约插件的背景介绍,可见上篇文章:提升团队研发效能利器,《阿里巴巴Java开发手册》插件全球首发(附插件下载地址)

一、阿里巴巴Java开发手册IDEA插件使用指南

通过Jetbrains官方仓库安装

1. 打开 Settings >> Plugins >> Browse repositories...

2. 在搜索框输入alibaba即可看到Alibaba Java Code Guidelines插件,点击Install进行安装,然后重启IDE生效 注意:因为插件zip包托管在Jetbrains官方CDN上,所以是从国外的服务器进行下载,可能会出现超时的情况

通过下载安装包进行安装

1. 打开插件页面

download

2. Settings >> Plugins >> Install plugin from disk...,选择刚刚下载的zip包安装,然后重启IDE

注意

最低支持IDEA版本为14.1(buildNumber 141.0,可以在About Intellij IDEA中查看版本信息),使用IDEA14的同学最好升级到14.1.7(历史版本传送门)

插件基于JDK1.7打包,所以IDEA启动时使用的JDK版本如果是1.6的话就会报Unsupported major.minor version 51.0异常,建议大家都升级一下。

中文乱码解决方法

  1. 修改字体——Appearance&Behavior -> Appearance -> UI Options -> Name 里面设置成微软雅黑(microsoft yahei light)

  2. Switch Language to English and restart.

插件使用

目前插件实现了集团编码规约中的41条规则,大部分基于PMD实现,其中有4条规则基于IDEA实现,并且基于IDEA Inspection实现了实时检测功能。部分规则实现了Quick Fix功能,对于可以提供Quick Fix但没有提供的,我们会尽快实现,也欢迎有兴趣的同学加入进来一起努力。
目前插件检测有两种模式:实时检测、手动触发。

实时检测

实时检测功能会在开发过程中对当前文件进行检测,并以高亮的形式提示出来,同时也可以支持Quick Fix,该功能默认开启,可以通过配置关闭。

结果高亮提示

检测结果高亮提示,并且鼠标放上去会弹出提示信息。

Intention QuickFix功能

Alt+Enter键可呼出Intention菜单,不同的规则会提示不同信息的Quick Fix按钮

关闭实时检测

在某些情况下,我们不希望对代码提示违规信息,比如我们在阅读Github开源项目代码的时候,如果界面出现一堆红色、黄色的提示,此时心里肯定是飘过一万只草泥马。这个时候我们可以通过Inspection的设置关闭实时检测功能。

  1. 通过右键快速关闭(打开)所有规则的实时检测功能


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会自动打开对应的源文件。

QuickFix

对于实现Quick Fix的规则,在结果面板中可以直接一键修复 注意:IDEA14、15可以通过左下角的灯泡进行一键修复操作。

二、阿里巴巴Java开发手册Eclipse插件使用指南

首先非常感谢大家对插件的支持与意见,Eclipse的功能相对来说比较简单,希望有更多的同学加入进来一起完善。

插件安装

环境:JDK1.8,Eclipse4+。有同学遇到过这样的情况,安装插件重启后,发现没有对应的菜单项,从日志上也看不到相关的异常信息,最后把JDK从1.6升级到1.8解决问题。

Help -> Install New Software...

输入Update Site地址:https://p3c.alibaba.com/plugin/eclipse/update 回车,然后勾选Ali-CodeAnalysis,再一直点Next Next...按提示走下去就好。 然后就是提示重启了,安装完毕。

注意:有同学反映插件扫描会触发JPA插件启动后台线程执行不明任务,如果不需要的话卸载掉JPA插件即可,目前尚未发现原因

插件使用

目前插件实现了开发手册中的53条规则,大部分基于PMD实现,其中有4条规则基于Eclipse实现,支持4条规则的QuickFix功能。

* 所有的覆写方法,必须加@Override注解, 
* if/for/while/switch/do等保留字与左右括号之间都必须加空格,
* long或者Long初始赋值时,必须使用大写的L,不能是小写的l)
* Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals。

目前不支持代码实时检测,需要手动触发,希望更多的人加入进来一起把咱们的插件做得越来越来,尽量提升研发的使用体验。

代码扫描

可以通过右键菜单、Toolbar按钮两种方式手动触发代码检测。同时结果面板中可以对部分实现了QuickFix功能的规则进行快速修复。

触发扫描

在当前编辑的文件中点击右键,可以在弹出的菜单中触发对该文件的检测。

在左侧的Project目录树种点击右键,可以触发对整个工程或者选择的某个目录、文件进行检测。

也可以通过Toolbar中的按钮来触发检测,目前Toolbar的按钮触发的检测范围与您IDE当时的焦点有关,如当前编辑的文件或者是Project目录树选中的项,是不是感觉与右键菜单的检测范围类似呢。

扫描结果

简洁的结果面板,按规则等级分类,等级->规则->文件->违规项。同时还提供一个查看规则详情的界面。

清除结果标记更方便,支持上面提到的4条规则QuickFix。

查看所有规则


国际化

文章作者:阿里云研发效能事业部 骏烈

如你在使用插件的过程里,有任何问题或建议,欢迎与代码规约作者孤尽联系,也欢迎加入P3C项目组,一起打造具有全球竞争力,效率/质量最优的一站式研发/运维/测试平台,加入方式:guanbao.yanggb@taobao.com 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《阿里巴巴Java开发手册》条例解读(一)
《阿里Java开发规范》应该是众多程序猿多年来,在使用Java的过程中,根据踩过的雷趟过的坑,总结出来的“血的教训”或“踩坑手册”。但就像《葵花宝典》,即便是读过一百遍也成功自宫,也不见得能马上能成为武林高手,因为没练过。
2383 0
Java Web(十一) 分页功能的实现
虽然现在有很多好用的框架,对分页进行支持,很简单的就把分页的效果做出来,但是如果自己手写是一个怎样的流程的?今天就来说说它,手动实现分页效果。
51 0
Java VisualVM添加Visual GC插件实现JVM性能调优
访问地址:https://visualvm.github.io/pluginscenters.html,找到自己JDK版本对应的插件下载地址(我的JDK版本为1.7.0_67):
110 0
Java阻塞队列的实现
阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来,如从队列中移除一个或者多个元素,或者完全清空队列,下图展示了如何通过阻塞队列来合作:
53 0
Doppio: JVM的TypeScript实现 Node和浏览器下直接运行Java
上次我们介绍了node-jvm,一个很酷的Node.js上的JVM实现。它的代码比较直白,很容易理解。可惜的是它用CPS变换来实现每个opcode的handler。这种实现方式是编译器的常见做法。然而由于JavaScript没有尾递归优化,因此爆栈很容易发生。然后实现的细节上也有一点瑕疵,例如long类型、checkcast指令等。
76 0
Elasticsearch批量导入本地Json文件Java实现
题记 产品开发需要,我们需要将互联网采集的数据存储到ES中,以实现数据的全文检索。 互联网采集的数据,往往格式杂乱,需要先进行数据清洗操作。 而ES支持的入库格式,json格式数据会相对方便些。 本文主要介绍,如何将格式化的Json文件批量插入到ES中。
588 0
Java Web简明教程–Java篇[9]–使用SQL语句实现增删改查
Java Web简明教程–Java篇[9]–使用SQL语句实现增删改查
120 0
JAVA简易贪吃蛇的实现
JAVA简易贪吃蛇的实现
27 0
Java程序猿笔记——基于redis分布式锁实现“秒杀”
最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。 业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现秒杀,就必须控制线程对资源的争抢,既要保证高效并发,也要保证操作的正确。 一些可能的实现 刚才提到过,实现秒杀的关键点是控制线程对资源的争抢,根据基本的线程知识,可以不加思索的想到下面的一些方法: 秒杀在技术层面的抽象应该就是一个方法,在这个方法里可能的操作是将商品库存-1,将商品加入用户的购物车等等,在不考
102 0
java实现Zip压缩
java实现Zip压缩
68 0
+关注
乔川
云栖社区搬运工。聚合各类技术好料喂饱你 :)
38
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载