首页 > 编程语言 >java代码格式化和静态分析检查

java代码格式化和静态分析检查

时间:2023-06-06 21:11:18浏览次数:46  
标签:xml 格式化 checkstyle java 静态 代码 ime Java Checkstyle

java代码格式化和静态分析检查

引言:在Java软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。Java 静态代码分析(static code analysis)工具能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时纠正这些问题,从而极大地提高软件可靠性并节省软件开发和测试成本。

静态分析检查(CheckStyle)

我们初步制定了一个适合本部研发的 java代码检查规范,下面我们来看看如何在idea和vscode中来使用它。

CheckStyle简介

Checkstyle是SourceForge旗下的一个开发工具,可以帮助程序员编写遵循编码标准的Java代码。它自动化了检查Java代码的过程,以避免人类完成这一枯燥(但很重要)的任务。这使得它非常适合那些希望实施编码标准的项目。Checkstyle是高度可配置的,可以支持几乎任何编码标准,默认内置Sun Java编码规范和Google Java编码规范两套配置文件,我们也可以根据自己的需要配置自己的规范。

IDEA

  • 安装:
  1. 在Plugins-marketpalce中查找CheckStyle IDEA插件,点击Installed 安装 idea安装1

  2. 完成安装后重启ide, 然后打开设置->Editor->Inspections,如果出现Checkstyle,则代表安装成功
    idea安装2

  • 配置:
  1. 在本地新建ime_checkstyle.xml配置文件,具体可参考 ime_checkstyle.xml

  2. 导入配置文件:在ide配置中搜索checkstyle, 按下图导入上一步新建的ime_checkstyle.xml文件 idea配置2

  3. 勾选新增的配置文件,完成: idea配置3

  • 使用:
  1. 首先打开一个文件,右键选择Check Current File: ideas使用1

  2. 记得这里的配置,选择我们刚刚配置的ime文件: idea使用4

  3. 除了单个文件以外,这里也有快捷方式可以针对整个project或者module进行检查: idea使用6 idea使用7

VSCode

  • 安装:
  1. 打开配置里的Extensions选择,搜索Language Support for Java(TM) by Red Hat插件和Checkstyle for Java插件,并安装,安装完成后重启ide

    vs安装1

  • 配置:
  1. 在项目根目录下新建ime_checkstyle.xml文件,内容具体可参考 ime_checkstyle.xml vs配置1

  2. 打开CheckStyle for Java插件,点击Extension Settings选项: vs配置2

  3. 选择Workspace页,填入根目录的配置文件,即${workspaceFolder}/ime_checkstyle.xml: vs配置3

  • 使用:
  1. 打开要检查的文件,即可展示代码的不规范之处: vs使用1

  2. 也可批量使用,选择要操作的module,点击Check Code with Checkstyle: vs使用2

代码格式化(Formatter)

因为主流的ide工具都自带了formatter功能,下面我们以idea为例简单看下如何应用。

IDEA

IDEA的format有个非常好的地方,即它支持Checkstyle configuration,这样就可以保持跟前面的checkstyle检查规范一致

  • 配置:
  1. 依次打开配置下的Editor->Code Style->java,点击右侧的配置按钮,选择Import Schema: format1

  2. 选择Checkstyle configuration,导入我们前面新建的 ime_checkstyle.xmlformat2

  • 使用:
  1. 选择要format的project或者module, 直接Reformat Code即可 format3

标签:xml,格式化,checkstyle,java,静态,代码,ime,Java,Checkstyle
From: https://www.cnblogs.com/qiuhk/p/17461726.html

相关文章

  • Java类加载机制
    <1>Javac原理javac是用于将源码文件.java编译成对应的字节码文件.class。其步骤是:源码——>词法分析器组件(生成token流)——>语法分析器组件(语法树)——>语义分析器组件(注解语法树)——>代码生成器组件(字节码)<2>类加载过程先在方法区找class信息,有的话直接调用,没有的话则使用类加......
  • java8函数式编程
    1.什么是函数式编程每个人对函数式编程的理解不尽相同。但其核心是:在思考问题时,使用不可变值和函数,函数对一个值进行处理,映射成另一个值。2.Lambda表达式Stream<String>stream=Stream.of("张三","李四");2.1collect(toList())List<String>names=stream.collect(Colle......
  • HttpURLConnection调用webservice,c#、java、python等HTTP调用webservice,简单的webserv
    以前调用webservice一般使用axis、axis2先生成java类后,直接引用,多方便。但是有的webservice接口非常的函数,生成的java类非常多,有没有一种非常简化的方法。axis2有不生成类直接调用的方法,但是QName不容易找,每次查N久不到。有的反馈,使用CXF调用一样方便,但CXF还要使用maven下载jar,而......
  • Java中输入字符串的方法
     Scannerinput=newscanner();Stringcode=input.next();错误写法://Stringcode=input.toString(); 1、输入字符串遇到空格或者换行结束Scannersc=newScanner(System.in);Stringstr=newString();str=sc.next();2、输入一行字符串,可以包括空格Scannersc=ne......
  • 第一章 JavaEE应用和开发环境
    1.1javaEE应用概述1、javaEE的分层模型数据库--【提供持久化服务】--》DomainObject层--【封装】--〉DAO层--【提供数据访问服务】--》业务逻辑层--【提供业务逻辑实现】--〉MVC的控制器层--【显示】--》前端优点:松耦合2、JavaEE应用的组件1)前端组件:主要负责收集用户......
  • 记录--你真的能区分JavaScript的各种导入导出方式吗?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言......
  • Java8 时间日期库的使用方法
    1、Java8新的时间日期库的20个使用示例http://ifeve.com/20-examples-of-date-and-time-api-from-java8/2、Java8日期/时间(DateTime)API指南http://www.importnew.com/14140.html3、JAVA8:健壮、易用的时间/日期APIhttp://www.importnew.com/14857.html......
  • Java8 Lambda 表达式的使用
    1、Java8教程汇总https://wizardforcel.gitbooks.io/java8-tutorials/content/2、Java8lambda表达式10个示例http://www.importnew.com/16436.html3、深入浅出Java8Lambda表达式http://blog.oneapm.com/apm-tech/226.html......
  • Java 匿名内部类调用局部变量
    Java8之前,匿名内部类中使用局部变量,需要强制使用final修饰Java8开始匿名内部类使用的外部变量不再被强制用final修饰。外部变量要么是final的;要么自初始化后值不会被改变这两种都是可以在匿名内部类中使用且编译通过。但是java8只是对‘事实上final’变量可以不声明final标......
  • Java 静态构造块异常抛出处理方法
    static{try{privateObjectobj=newObject();}catch(Exceptione){log.error(e);}}静态构造块中的异常不要抛出,否则会造成类初始化异常!......