maven-代码风格检查工具

简介: [TOC]checkstylecheckstyle 用于对代码风格进行检查checkstyle-maven插件操作示例mvn clean compile checkstyle:checkstyle输出(target/site/checkstyle.

[TOC]

checkstyle

checkstyle 用于对代码风格进行检查
checkstyle-maven插件
操作示例

mvn clean compile checkstyle:checkstyle

输出(target/site/checkstyle.html)

Summary
Files   Info    Warnings    Errors
24  0   15  0
Files
File    I   W   E
org/foo/base/mongoop/core/CommandAnalysisListener.java  0   2   0
org/foo/base/mongoop/core/op/CommandOp.java 0   8   0
org/foo/base/mongoop/report/OpResult.java   0   4   0
org/foo/base/mongoop/support/HttpApiClient.java 0   1   0

根据结果页面的提示,可对checkstyle异常进行修复。
如果希望对checkstyle进行定制,可通过配置文件定制规则
如下命令:

mvn clean compile checkstyle:checkstyle -Dcheckstyle.config.location=checkStyleConfig.xml

通过-Dcheckstyle.config.location制定checkStyleConfig.xml作为规则配置文件。
以下示例展示了如何屏蔽代码扫描:

  1. checkStyleConfig.xml添加suppression模块:

    <module name="SuppressionFilter">
    <property name="file" value="checkStyleSuppression.xml"/>
    </module>
  2. checkStyleSuppression.xml配置:

    <?xml version="1.0"?>
    <!DOCTYPE suppressions PUBLIC
    "-//Puppy Crawl//DTD Suppressions 1.1//EN"
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
    <suppressions>
    <suppress checks="." files="org[\\/]eclipse1[\\/]californium[\\/]scandium[\\/].*\.java$"/>
    </suppressions>

    此外,还可以通过pom文件指定配置:

    <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-checkstyle-plugin</artifactId>
     <version>2.17</version>
     <configuration>
      <configLocation>checkStyleConfig.xml</configLocation>
      <suppressionsLocation>checkStyleSuppressions.xml</suppressionsLocation>
     </configuration>
    </plugin>

    参考文档
    checkstyle的配置说明
    checkstyle配置解析

findbugs

findbugs 项目存在已久,主要用于自动化扫描并提前分析判断代码中可能存在的问题,该项目包含一个gui界面。

findbugs-maven插件
执行如下命令:

mvn clean compile findbugs:findbugs

扫描后会生成target/findbugsXml.xml,该文件记录了扫描后的所有异常。
由于xml文件可读性不高,我们可以借助gui工具完成分析:

clean compile findbugs:findbugs findbugs:findbugsgui

以上命令在执行扫描后会自动打开一个findbugsgui工具,并展现异常结果。
如果希望屏蔽某类代码的检查,可执行:

clean compile findbugs:findbugs -Dfindbugs.excludeFilterFile=findBugsExcludeFilter.xml

findBugsExcludeFilter.xml配置:

<Match>
    <Package name="~org[.]eclipse[.]californium[.]scandium([.].*)?"/>
</Match>

~开头表示采用正则表达式

pmd

pmd可按照一组最佳实践规则对代码进行扫描,并输出针对项目代码中的多个改进建议。

pmd-maven插件
执行如下命令:

mvn clean compile pmd:pmd

扫描后会生成target/site/pmd.html,该文件记录了所有异常。

Files
org/foo/base/mongoop/support/ApplicationContextSupport.java
Violation   Priority    Line
Avoid modifiers which are implied by the context    3   93–95
Avoid modifiers which are implied by the context    3   94

根据结果页面的提示,对pmd扫描结果进行修复。
默认情况下pmd使用内置的5个ruleset规则进行扫描,可以在pom.xml中定制规则:

<build>
  <plugins>
 <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-pmd-plugin</artifactId>
  <configuration>
   <rulesets>
    <ruleset>/rulesets/java-basic.xml</ruleset>
    <ruleset>/rulesets/java-imports.xml</ruleset>
    <ruleset>/rulesets/java-unusedcode.xml</ruleset>
   </rulesets>
   <excludes>
    <exclude>**org/eclipse/californium/scandium/**</exclude>
   </excludes>
  </configuration>
 </plugin>
  </plugins>
</build>

多模块中的配置

其他

在每次构建时全部执行检查,可串联运行

mvn clean compile checkstyle:checkstyle pmd:pmd findbugs:findbugs findbugs:gui
img_9b09a36f6de95886f52ce82fa1e89c88.jpe

作者: zale

出处: http://www.cnblogs.com/littleatp/, 如果喜欢我的文章,请关注我的公众号

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文链接  如有问题, 可留言咨询.

目录
相关文章
|
8月前
|
Java Linux Maven
私有仓库工具Nexus Maven如何部署并实现远程访问管理界面
私有仓库工具Nexus Maven如何部署并实现远程访问管理界面
192 0
|
Java Devops jenkins
【devops】三、Build阶段工具——配置maven
【devops】三、Build阶段工具——配置maven
147 0
|
JSON 搜索推荐 Java
做了个springboot接口参数解密的工具,我给它命名为万能钥匙(已上传maven中央仓库,附详细使用说明)
更新的功能具体使用示例已经更新到博文中,请在目录中找到对应位置查看
|
Java 应用服务中间件 Apache
自动化构建工具Maven
自动化构建工具Maven
|
3月前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
256 2
|
5月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
5月前
|
Java 持续交付 项目管理
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。它采用项目对象模型(POM)来描述项目,简化构建流程。Maven提供依赖管理、标准构建生命周期、插件扩展等功能,支持多模块项目及版本控制。在Java Web开发中,Maven能够自动生成项目结构、管理依赖、自动化构建流程并运行多种插件任务,如代码质量检查和单元测试。遵循Maven的最佳实践,结合持续集成工具,可以显著提升开发效率和项目质量。
68 1
|
5月前
|
Java 编译器 测试技术
项目管理工具Maven的简单配置示例
【8月更文挑战第11天】这段内容介绍了如何通过Maven快速搭建并配置一个Java项目。首先需确保已安装Maven,接着可通过命令行创建一个基础项目结构,定义`groupId`、`artifactId`等基本信息。项目根目录下的`pom.xml`文件是核心配置文件,用于声明依赖库如JUnit,并配置构建插件如Maven Compiler Plugin以指定Java编译版本。最后,通过执行`mvn clean install`命令完成项目的清理与构建。这个流程适合初学者快速上手Maven项目管理。
|
6月前
|
Java jenkins 持续交付
Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试
【7月更文挑战第1天】Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试。成功后,Jenkins执行部署任务,发布到服务器或云环境。使用Jenkins能提升效率,保证软件质量,加速上线,并需维护其稳定运行。
145 0
|
Java jenkins 持续交付
Jenkins全局工具配置(JDK、Maven、Maven插件)
Jenkins全局工具配置(JDK、Maven、Maven插件)
657 0