首页 > 编程语言 >阿里的Java开发规范插件验证

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

时间:2023-06-27 21:31:57浏览次数:39  
标签:插件 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

阿里的Java开发规范插件验证_软件测试

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,

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

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

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

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

阿里的Java开发规范插件验证_软件测试_04

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

例如如下代码,

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三个等级显示在下方面板中,

阿里的Java开发规范插件验证_人工智能_05

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

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

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

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

2. Eclipse的安装

Eclipse中打开Help-Install New Software,

阿里的Java开发规范插件验证_软件测试_08

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

阿里的Java开发规范插件验证_人工智能_09

勾选Ali-CodeAnalysis,

阿里的Java开发规范插件验证_软件测试_10

进行安装,

阿里的Java开发规范插件验证_人工智能_11

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

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

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

阿里的Java开发规范插件验证_软件测试_13

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

阿里的Java开发规范插件验证_人工智能_14

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

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

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

参考,

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


标签:插件,Java,检测,代码,功能,实时,阿里,按钮
From: https://blog.51cto.com/u_13950417/6566368

相关文章

  • 对第三阶段PTA集训及Java课程的分析与反思
    前言:本阶段PTA集训共有8-11题目集,涵盖了很多知识点,尤其是成绩计算系列题目,几乎包含了Java目前所学的所有内容,写下来非常不容易(可能对于我这种小菜鸡来说很难)。涵盖的知识点包括对Stirng类型的处理,对象数组的创建与处理,抽象类的使用,异常的处理,逻辑的训练,设计模式的实操。题量不大......
  • java-集合类学习
    LinkedHashMapAspecialconstructorisprovidedtocreatealinkedhashmapwhoseorderofiterationistheorderinwhichitsentrieswerelastaccessed,fromleast-recentlyaccessedtomost-recently(access-order).Thiskindofmapiswell-suitedtobu......
  • JAVA判断是否是IDEA里启动
      /***判断是否是idea里面启动*@returntrue:是false:否*/privatestaticbooleancheckRunInIDEA(){try{Class.forName("com.intellij.rt.execution.application.AppMainV2");returntrue;}cat......
  • java8多线程使用示例
    使用CompletableFuture.allOf实现异步执行同步搜集结果/***@authorwjq*@create2022-03-1216:19*/publicclassTestCompleteFuture{privatestaticfinalintcorePoolSize=10;//核心线程数privatestaticfinalint......
  • Java第三阶段题目集总结
    一、前言这一阶段的题目集主要课程成绩设计的迭代,在这一题目里主要用到了正则表达式,准确来说正则表达式在这一题里占据十分重要的位置。这一阶段还考查到了数据结构的内容,像是栈和队列的使用。同时还涉及到了map和set数组的使用。在这一阶段我学到了许多新的知识,也对前面所学的内......
  • Spring Boot系列教程一:Eclipse安装spring-tool-suite插件
    一.前言    一直使用eclipse,个人习惯选用Eclipse+spring-tool-suite进行开发,特别注意Eclipse要选用对应的spring-tool-suite进行安装,这点笔者浪费了好长时间,以下为对应的版本。eclipse-kepler.4.3.1–>springsource-tool-suite-RELEASE-e4.3.1-updatesite.zipecl......
  • Maven构建项目后项目报Error错误Java compiler level does not match the version of
     Maven构建项目后项目报Error错误JavacompilerleveldoesnotmatchtheversionoftheinstalledJavaprojectfac 项目->右键->Properties->ProjectFacets->修改facets中Java版本(下拉箭头出)为要用的版本Maven构建项目需注意1.项目右键->Properties->buildpath->jdk2.项......
  • Java静态导入(import static)需谨慎
    从Java5开始引入了静态导入语法(importstatic),其目是为了减少字符输入量,提高代码的可阅读性,以便更好地理解程序。我们先来看一个不使用静态导入的例子,也就是一般导入:publicclassMathUtils{//计算圆面积publicstaticdoublecalCircleArea(doubler){ret......
  • Java 方法的使用
    Java方法的使用1.方法的调用在main方法中调用了某个方法,在栈里会开辟对应的方法栈,根据代码执行到最后或者返回出去后,这个方法的栈就结束并返回到原来调用方法的地方。继续执行main方法的代码,直到最后main方法栈也结束了。2.方法的好处使用方法可以极大程度减少使用相同......
  • java让一个api延迟执行
    Java中可以使用以下方式延迟执行一个API:1.使用Thread.sleep方法:可以通过让当前线程休眠一段时间来实现延迟执行。例如,以下代码会让当前线程休眠5秒钟,然后再执行指定的API方法。 Thread.sleep(5000);}catch(InterruptedExceptione){e.printStackTrace();}//执......