Java代码质量评估工具

2023-11-18

概述

Java代码的质量评估主要包括代码的可维护性、健壮性、以及在运行时能达到既定的性能目标,可维护性主要包括代码的可读性、在关键的代码上提供详细注释、在设计类或方法以及代码逻辑时符合设定的编码规范,健壮性主要包括编写代码时应使用常用的设计模式、在代码发生异常时能提供合理的容错性,代码运行的性能目标主要包括代码能高效地运行、代码在执行计算的过程中应合理地使用内存资源或处理器资源以及其他系统资源。

本文主要描述Eclipse IDE的集成开发工具提供的相关插件,这些插件主要包括阿里云的P3C、CheckStyle、PMD、FindBugs、SourceMonitor、Sonar,使用这些插件对项目工程代码执行静态扫描,从而输出代码存在的问题,研发人员可以根据这些问题初步评估代码的质量,然后,修改以及优化这些代码问题,这些插件的功能与作用如下所示:

阿里云的P3C

P3C是阿里云提供的编程规范的插件,支持Eclipse IDE或者其他IDE,其提供的编程规约包括命名规范、常量定义、代码格式、OOP规约、集合处理、并发处理、控制语句、注释规约以及其他规约

CheckStyle

Check Style是一款开发工具,开发者可以使用该工具检查代码是否符合既定的标准规范,其提供的检查范围包括类设计问题、方法设计问题、代码编写格式或者布局问题、其他问题,其支持Eclipse IDE或者Maven插件

 

PMD

PMD是一款静态代码分析工具,使用该工具检查代码可以帮助开发者发现的问题包括未被使用的变量、无用或者空的代码块、多余被创建的类对象、其他问题,其支持Eclipse IDE或者Maven插件

 

FindBugs

FindBugs是一款专用于Java语言的代码安全审计的工具,其提供的代码检查功能包括发现代码类型安全问题、发现传输协议数据安全问题,其支持OWASP标准以及CWE标准的安全性检查,其提供Eclipse IDE或者Maven插件

 

SourceMonitor

SourceMonitor是一款用于统计代码行数、检查代码圈复杂度的工具,代码圈复杂度能直接反映出代码算法的计算效率的问题,复杂度越高,则代码算法的执行效率越低

 

Sonar

Sonar提供三种方式的代码检查工具,包括Eclipse IDE插件本地代码检查、支撑企业内开发团队的代码检查平台、在DevOps  CI/CD领域中提供有效的工具集成到云环境

 

阿里云的P3C

https://github.com/alibaba/p3c/

图片

如上所示,git上下载P3C源代码到本地开发环境

https://p3c.alibaba.com/plugin/eclipse/update

图片

如上所示,在Eclipse IDE中,输入P3C的插件网络地址即可安装

图片

如上所示,Alibaba Code Guidelines代码检查插件安装成功

图片

如上所示,使用Alibaba Code Guidelines代码检查插件对Java项目工程代码执行扫描,输出代码存在的问题,开发人员可以根据这些问题及时修复以及优化代码

CheckStyle

https://checkstyle.org/index.html

https://maven.apache.org/plugins/maven-checkstyle-plugin/usage.html

    

图片

如上所示,在Eclipse IDE的Maven工程中配置Maven checkstyle插件

图片

如上所示,在Eclipse IDE执行Maven的命令生成代码检查报告

图片

图片

如上所示,在项目构建的目标目录site中,输出checkstyle的报告

图片

如上所示,checkstyle.html页面中可以查看代码存在的问题

PMD

https://docs.pmd-code.org/latest/pmd_userdocs_tools_maven.html

图片

图片

如上所示,在Eclipse IDE项目工程中配置Maven的pom.xml

图片

如上所示,在Eclipse IDE中运行Maven的命令执行PMD对代码的分析

图片

如上所示,在项目工程的构建目录中输出pmd.html的代码分析报告

FindBugs

https://find-sec-bugs.github.io/

图片

图片

如上所示,在Eclipse IDE项目工程中配置Maven的pom.xml

mvn compile

mvn spotbugs:spotbugs

mvn spotbugs:gui

图片

如上所示,在Eclipse IDE中运行Maven命令,执行findbugs的代码分析

图片

如上所示,findbugs提供的分析工具显示代码存在的问题

SourceMonitor

https://www.derpaul.net/SourceMonitor/

图片

如上所示,下载安装SourceMonitor工具、对Java代码工程执行圈复杂度的分析、输出分析报告

Sonar

https://docs.sonarsource.com/sonarlint/eclipse/

如上所示,在Eclipse IDE插件市场中搜索安装SonarLint

如上所示,在Eclipse IDE中使用SonarLint对Java项目工程执行代码分析

如上所示,SonarLint对Java项目工程执行代码分析,输出分析报告

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java代码质量评估工具 的相关文章

随机推荐

  • docker命令自动补全

    很多命令都会提供一个bash complete的脚本 在执行该命令时 敲tab可以自动补全参数 会极大提高生产效率 docker亦如此 如 yum install docker后 会有一个文件 usr share bash completi
  • Linux搭建gitlab以及汉化

    注 请使用管理员权限的用户 执行如下操作 文章目录 GitLab搭建 一 安装并配置必要的依赖关系 1 安装ssh 3 启动SSH服务 4 安装防火墙 如果已经安装了防火墙并且已经在运行状态 则可直接进行第6步 5 开启防火墙 6 添加ht
  • 【OpenGL学习】Shader和Shader类的抽象

    Shader 本节学习OpenGL中Shader的使用并将其抽象为类 简要介绍OpenGL所使用的着色器语言GLSL 一 什么是Shader 参考维基百科中对Shader的定义 着色器 维基百科 自由的百科全书 wikipedia org
  • 【终极版】java连接oracle数据库三种方式(上篇)

    很多小伙伴都对java连接oracle数据库的操作弄的稀里糊涂 今天我就贴出终极版 一举解决所有的连接方式 上篇主要是解决利用驱动连接的方式 我是小順 请大家关注我 我会给大家发更多的工具 JAR包 import java sql Conn
  • Mac 电脑python 升级3.7版本

    转自 https www jianshu com p 5f55997ab719 官网下载python3 7 并且安装https www python org downloads mac osx 本人电脑有多个版本的python 为了体验新版
  • ffmpeg推流参考文章

    https www cnblogs com leisure chn p 10623968 html https www bilibili com read cv12294853 基于M3568平台移植nginx https z zlg cn
  • Docker笔记:基本概念、镜像、容器、仓库以及数据卷的使用

    什么是docker docker 是一个开源的应用容器引擎 可以使用docker将应用程序和依赖打包到一个镜像之中 可以非常方便的移植到其他机器上运行 使用docker构建打包我们的应用 build 之后可以像集装箱一样很方便的传输到别的机
  • 【Learning PGM in R】第一章 概率推理

    目录 1 1机器学习 1 1 1监督学习 1 1 2无监督学习和强化学习 1 2概率表示 1 2 1概率计算和随机变量 1 2 2条件概率 联合概率分布和边缘分布 1 3贝叶斯规则 1 4概率图模型基础 1 4 1概率图模型基础理论 1 4
  • 使用Kalman滤波器做目标跟踪

    https www mathworks com help vision examples using kalman filter for object tracking html 由该例整理而来 1 前言 2 介绍 3 目标跟踪的挑战 4
  • Vue2屎山代码大盘点

    前言 相比其他的框架来说 Vue中更容易产出屎山代码 因为Vue中的options就是一个大对象 导致js本身的很多检测都失效了 比如一个函数没有用到的话会 变灰 template中代码提示比较少 较多的mixins等等 遇到屎山代码 大多
  • 【JEECG技术博文】简单实例讲解JEECG ONLINE表单权限控制(jeecg3.6)

    简单实例讲解JEECGONLINE表单权限控制 jeecg3 6 原文 http blog itpub net 30066956 viewspace 1872409 相关博文 http blog itpub net 30066956 vie
  • Atcoder beginner contest 301

    A Overall Winner AC代码 include
  • CVE -2022-26134漏洞复现(Confluence OGNL 注入rce漏洞)

    0x01 Atlassian Confluence Atlassian Confluence是一个专业的企业知识管理与协同软件 主要用于公司内员工创建知识库并建立知识管理流程 也可以用于构建企业wiki 其使用简单 但它强大的编辑和站点管理
  • SpringBoot关于List集合的校验

    1 List集合失效的校验 PostMapping saveBatch ApiOperation 批量保存 LogOperation 批量保存 public Result saveBatch RequestBody Validated Li
  • vue项目 公众号授权

    第一步 获取后台给的跳转链接 获取链接 getAuth this http post this api wxGongAccount this qs stringify access token this token then res gt
  • with recursive ——《寻找没有被执行的任务对》LeetCode Plus 会员专享题【详细解析】Hive / MySQL

    大家早上好 本人姓吴 如果觉得文章写得还行的话也可以叫我吴老师 欢迎大家跟我一起走进数据分析的世界 一起学习 感兴趣的朋友可以关注我的数据分析专栏 里面有许多优质的文章跟大家分享哦 另外也欢迎大家关注我的SQL刷题专栏 里面有我分享的高质量
  • SRS文档

    主要负责人 王希敏201303014099 http www cnblogs com wangximin 日历记事本的用例建模 一 以现实世界中日历中的便签 或记事本等为原型 我们平常所使用的日历 每页都会留有一些空白的部分 用来记录当日
  • 电脑一开机,内存爆满90%以上

    我的是联想电脑 电脑一开机 内存爆满 然后打开任务管理器 并没有显示任何的应用程序所占内存较大 我然后又去打开杀毒软件 关闭电脑自动更新 都没有效果 最后 解决的办法是运行window 内存诊断 最后100 之后重启成功
  • 历次改革学习-20220816

    通过分税制改革 中央政府实现了政治上和经济上的集权 必须指出的是 土地和房地产问题后来发展到如此严峻的程度 也是1994年分税制的结果 因为分税制事实上把土地支配权给了地方政府 地方政府也各显神通 发展出包括地方融资平台在内的各种推动地方发
  • Java代码质量评估工具

    概述 Java代码的质量评估主要包括代码的可维护性 健壮性 以及在运行时能达到既定的性能目标 可维护性主要包括代码的可读性 在关键的代码上提供详细注释 在设计类或方法以及代码逻辑时符合设定的编码规范 健壮性主要包括编写代码时应使用常用的设计