中 ?打造企业自己代码规范IDEA插件( 二 )

步骤三:在messages.xml 和 messages_en.xml 分别添加检查出错后给出相关中英文提示 。
<entry key="java.naming.VoidSystemPrintRule.violation.msg"><![CDATA[程序中避免直接使用 System 对相关日志信息输出]]></entry>——<entry key="java.naming.VoidSystemPrintRule.violation.msg"><![CDATA[Avoid using system print]]></entry>步骤四:新建emo-common.xml 的规则集合,并将实现的规则配置进去 。
<ruleset name="AlibabaJavaNaming" xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd"><description>EmoJavaCommonRule</description><rule name="VoidSystemPrintRule"language="java"since="1.6"message="java.naming.VoidSystemPrintRule.violation.msg"class="com.alibaba.p3c.pmd.lang.java.rule.emo.VoidSystemPrintRule"><priority>3</priority><example><![CDATA[System.out.println(message);]]></example></rule></ruleset>步骤五:在ali-pmd.xml 中引入我们新加的规则集合 emo-common.xml 。
<rule ref="rulesets/java/emo-common.xml"/>最后运行下修改完的代码程序,效果如下:

中 ?打造企业自己代码规范IDEA插件

文章插图
中 ?打造企业自己代码规范IDEA插件

文章插图
综述下关键点,代码规范检查基本原理可以基于AST语法树来进行实现;AST结合Xpath可以方便进行相关规范规则的编写;通过 PMD-Designer 能可视化的帮助我们实现 XPath 的相关代码规范规则以及验证相关规则;给出了一个例子,基于阿里开源代码规范插件源码,编写适用自己公司的代码规范的方式 。
附上相关代码github链接:https://github.com/ariesfly/emo-coding-guardian如有遇到问题欢迎公众号私信留言
【中 ?打造企业自己代码规范IDEA插件】

经验总结扩展阅读