前言
网上复制来,复制去,都不知道原因,瞎搞。故写了此篇文档;
以下代码,直接复制到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介绍即可