阿里巴巴Java规约p3c-pmd与maven集成,实现maven package打包前校验

news/2024/10/19 15:31:14/

前言

网上复制来,复制去,都不知道原因,瞎搞。故写了此篇文档;
以下代码,直接复制到pom.xml中就好使。

需求

阿里巴巴Java规约p3c-pmd与maven集成,实现maven package打包前校验,如果校验不通过则打包失败;

实现

在pom.xml的plugins节点里,添加如下代码即可实现:

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-pmd-plugin</artifactId><!--低版本site站点支持不好,会缺少css文件,导致生成的PMD.html打开页面不好看-->
<!--                <version>3.15.0</version>--><version>3.21.0</version><configuration><verbose>true</verbose><!-- 规范的配置 --><rulesets><ruleset>rulesets/java/ali-comment.xml</ruleset><ruleset>rulesets/java/ali-concurrent.xml</ruleset><ruleset>rulesets/java/ali-constant.xml</ruleset><ruleset>rulesets/java/ali-exception.xml</ruleset><ruleset>rulesets/java/ali-flowcontrol.xml</ruleset><ruleset>rulesets/java/ali-naming.xml</ruleset><ruleset>rulesets/java/ali-oop.xml</ruleset><ruleset>rulesets/java/ali-orm.xml</ruleset><ruleset>rulesets/java/ali-other.xml</ruleset><ruleset>rulesets/java/ali-set.xml</ruleset></rulesets><printFailingErrors>true</printFailingErrors></configuration><executions><execution><id>pmd-check-verify</id><phase>package</phase><goals><goal>check</goal></goals></execution><execution><id>pmd-pmd-site</id><phase>site</phase><goals><goal>cpd</goal></goals></execution></executions><dependencies><dependency><groupId>com.alibaba.p3c</groupId><artifactId>p3c-pmd</artifactId><version>2.1.1</version></dependency></dependencies></plugin>

以上涉及到的rulesets/java/ali-**.xml(阿里的校验规则文件)。使用的是dependency依赖过来的p3c-pmd里面的规则文件,故不需要单独额外创建

效果

执行maven package时,会先根据阿里规范进行代码校验,并且在项目下生成报告文件target\site\pmd.html

原理

阿里的p3c是基于maven PMD开发的,所以可以直接用。
详细看看官网PMD介绍即可


http://www.ppmy.cn/news/1438168.html

相关文章

transformer 最简单学习3, 训练文本数据输入的形式

1、输入数据中&#xff0c;源数据和目标数据的定义 def get_batch(source,i):用于获取每个批数据合理大小的源数据和目标数据参数source 是通过batchfy 得到的划分batch个 ,的所有数据&#xff0c;并且转置列表示i第几个batchbptt 15 #超参数&#xff0c;一次输入多少个ba…

文件分享新风尚,二维码生成器全功能解析

随着科技的飞速发展&#xff0c;二维码生成器已经成为我们日常生活中不可或缺的一部分。无论是支付、下载应用还是获取信息&#xff0c;二维码都以其便捷性和高效性赢得了广大用户的青睐。在这样的背景下&#xff0c;二维码生成器应运而生&#xff0c;不仅支持多文件生成二维码…

T1级,生产环境事故—Shell脚本一键备份K8s的YAML文件

大家好&#xff0c;我叫秋意零。 最近对公司进行日常运维工作时&#xff0c;出现了一个 T1 级别事故。导致公司的“酒云网”APP的无法使用。我和我领导一起搞了一个多小时&#xff0c;业务也停了一个多小时。 起因是&#xff1a;我的部门直系领导&#xff0c;叫我**删除一个 …

IDEA 2021.3.3最新激活破解教程(可激活至2099年,亲测有效)

1、ja-netfilter-all Windows 系统&#xff0c;点击运行 install-current-user.vbs 脚本&#xff0c;为当前用户安装破解补丁 截图是window环境下的激活方式 运行此补丁大约花费几分钟&#xff0c;点击 确定&#xff0c; 等待 Done 完成提示框出现&#xff0c;到这里&#xf…

OpenHarmony实战开发-提升应用响应速度。

应用对用户的输入需要快速反馈&#xff0c;以提升交互体验&#xff0c;因此本文提供了以下方法来提升应用响应速度。 避免主线程被非UI任务阻塞减少组件刷新的数量 避免主线程被非UI任务阻塞 在应用响应用户输入期间&#xff0c;应用主线程应尽可能只执行UI任务&#xff08;…

深入理解Java消息中间件-ActiveMQ

在现代企业级应用开发中&#xff0c;消息中间件扮演着连接各个系统与应用、保证数据流畅传输的关键角色。Apache ActiveMQ&#xff0c;作为一款成熟的开源消息队列系统&#xff0c;为Java环境中的异步通信和系统集成提供了强大支持。本文将为您揭晓ActiveMQ的来源&#xff0c;消…

R可视化:绘制带有显著性标记的误差棒图

介绍 ggplot2绘制分组误差棒图加载R包 knitr::opts_chunk$set(message = FALSE, warning = FALSE) library(tidyverse) library(ggpubr) library(rstatix)# rm(list = ls()) options(stringsAsFactors = F) options(future.globals.maxSize = 10000 * 1024^2)Importing data …

Windows下Golang初学乍到

安装 没啥说的&#xff0c;官网下载即可&#xff0c;地址&#xff1a;All releases - The Go Programming Language 根据系统类型下载即可&#xff01; 配置 Windows下安装完后&#xff0c;发现path中已经有了&#xff0c;但为了避免可能的问题&#xff0c;还是建议配置GOPA…