阿里的Java开发规范插件验证

Posted bisal

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里的Java开发规范插件验证相关的知识,希望对你有一定的参考价值。

阿里最近有点“烦”,但是作为技术人,更多关注的还是技术层面,其他的就交给有关机构和时间来证明。


最近有项工作借鉴了阿里的Java开发规范,为了能让其落地,需要验证方案,而这个Java开发规范提供了对应的验证插件,因此从使用层面,了解一下。


目前该插件实现了开发手册中的的53条规则,大部分基于PMD实现,其中有4条规则基于IDEA实现,并且基于Inspection实现了实时检测功能,部分规则实现了Quick Fix功能。

目前插件检测有两种检测模式:实时检测、手动触发。

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

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

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

  • 如果我们不希望对代码提示违规信息,可以通过Inspection的设置关闭实时检测功能。

    • 通过菜单【关闭/打开实时检测功能】关闭/打开所有规则的实时检测功能。

    • 通过File -> Settings -> Editor -> Inspections -> Ali-Check对每一个规则进行自由设置,比如可以关闭某条规则的实时检测功能或者修改提示级别。

阿里的Java开发规范设置了三个等级,

  • Blocker(崩溃):阻碍开发或测试工作的问题。

  • Critical(严重):系统主要功能部分丧失、数据库保存调用错误、用户数据丢失。

  • Major(一般):功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。

目前的p3c插件支持IDEA、Eclipse。

P.S. https://github.com/alibaba/p3c/tree/master

IDEA的要求,

  • Project JDK: 1.7+

  • Gradle: 3.0+(Require JDK1.8+ for gradle)

Eclipse的要求,

  • Eclipse Juno+

  • maven3.+

  • JDK 1.7+

1. IDEA的安装

IDEA中,选择Settings-Plugins,搜索Alibaba Java Coding Guidelines,

安装完成,在项目目录上右键点击会出现这两个功能按钮,

点击绿色的按钮即可开始扫描代码,或者在工程目录上右键也会出现检测的功能按钮。如果不想全部扫描,只扫描当前编辑的文件的话,在当前文件面板中点击右键会出现此功能按钮,

前面说的两种方式是手动检测,插件也提供了实时监测的功能,参考蓝色按钮,此功能默认开启,一旦开启则会在你编写代码时就会实时监测,一旦有不符合规范的语句就会出现错误提示。

例如如下代码,

package com.test;


/**
 * Hello world!
 *
 */
public class App {
    public static void main( String[] args ) {
        System.out.println( "Hello World!" );
        String test = "tset";
        if (test.equalsIgnoreCase("test")) {
            System.out.println("test");
        }
    }
}


扫描代码后,不符合规约的代码会按Blocker/Critical/Major三个等级显示在下方面板中,

左边是扫描出的不符合规范的代码,依次点进去可以看到是代码的多少行出现了规约问题以及哪一个规约问题,右边则是规约的详细描述及实例代码,

不仅如此,右侧还有quick fix的按钮,点击后直接可以改正代码,但是并不是所有的问题都有此按钮,有些问题还是需要手动修改,

2. Eclipse的安装

Eclipse中打开Help-Install New Software,

输入https://p3c.alibaba.com/plugin/eclipse/update,

勾选Ali-CodeAnalysis,

进行安装,

安装完成,会在工具中,出现这两个图标,

可以在类、包或者工程上右键,选择“阿里编码规约扫描”,

出现两个新窗口,一个是P3C Results,显示执行结果,

另外一个是Rule Detail,给出当前规则的一些说明和示例,

以上是规范验证插件的使用,但是是说使用了这个插件,就能够让我们的代码中少一些Bug?是不是我们就能少踩一些坑?答案肯定不是,插件只有检测和提示作用,真正的编码者依然是我们自己,这只是一个工具而已,他只是提供给我们一些实践的经验,真正要写出健壮代码最重要的还在于编码者自己,所以不要本末倒置。

参考,

https://github.com/alibaba/p3c/tree/master/idea-plugin

https://www.cnblogs.com/han-1034683568/p/7682594.html

https://www.cnblogs.com/baiqiantao/p/8036886.html

近期更新的文章:

《SQL Cookbook》 - 第一章 检索数据

梅西 ≠ 一人一城?

小白学习MySQL - 表空间碎片整理方法

Oracle字符串类型扩容隐患

PG逻辑复制的REPLICA IDENTITY设置

文章分类和索引:

《公众号800篇文章分类和索引

以上是关于阿里的Java开发规范插件验证的主要内容,如果未能解决你的问题,请参考以下文章

Java代码规范_插件_阿里java开发手册

IDEA 阿里巴巴代码规范检查插件

阿里的代码规范插件

阿里java开发规范学习(附P3C IDEA插件 帮助规范的养成)

阿里巴巴Java开发规约插件

阿里巴巴Java开发规约插件-体验