1. 首页
  2. 软件开发
  3. PMD使用问题记录

PMD使用问题记录

  • 发布于 2024-09-21
  • 0 次阅读

1 通过pmd-cli源码调试时,需要确保需要调试的模块在pom.xml中的scope不是test。

设置参数后运行,将报找不到category/java/bestpractices.xml 的错误。

将scope注释即可,如果调试其他模块功能,注释对应模块即可。

2 pmd规则文件中描述修改为中文乱码问题

例如修改category/java/codestyle.xml中的描述为中文后,检测报告中的问题描述信息显示乱码。需要设置环境变量PMD_JAVA_OPTS值为-Dfile.encoding=UTF-8 即可解决问题。

    <rule name="AtLeastOneConstructor"
          language="java"
          since="1.04"
          message="每个类应至少声明一个构造函数"
          class="net.sourceforge.pmd.lang.java.rule.codestyle.AtLeastOneConstructorRule"
          externalInfoUrl="${pmd.website.baseurl}/pmd_rules_java_codestyle.html#atleastoneconstructor">
        <description>
<![CDATA[
每个非静态类应至少声明一个构造函数。
仅具有静态成员的类将被忽略,请参阅 [UseUtilityClassRule](pmd_rules_java_design.html#useutilityclass) 来检测这些类。
]]>
        </description>
        <priority>3</priority>
        <example>
<![CDATA[
public class Foo {
   // missing constructor
  public void doSomething() { ... }
  public void doOtherThing { ... }
}
]]>
        </example>
    </rule>

环境变量设置

如果cmd窗口显示乱码,可能是cmd窗口需要设置编码。

chcp 65001

65001 是 UTF-8 编码页。更改编码后,CMD 应该能够正确显示中文字符。

原文链接: https://blog.csdn.net/javajingling/article/details/141568005