PMD或Checkstyle检查禁止使用某些类

时间:2016-02-03 18:18:41

标签: java checkstyle pmd

是否有可用的PMD或Checkstyle规则可以帮助我禁止在Java代码中使用某些某些类?

在我的情况下,我想在所有可能的背景下禁止所有以下内容:

  • org.apache.commons.lang3.CharEncoding
  • org.apache.commons.lang.CharEncoding
  • org.apache.commons.codec.CharEncoding

我发现了IllegalImport支票,但它是关于包裹的,而不是特定的类别。

2 个答案:

答案 0 :(得分:1)

对于 PMD,您可以编写如下规则:

<rule name="Prohibited classes"
      language="java"
      message="Avoid using these classes."
      class="net.sourceforge.pmd.lang.rule.XPathRule" >
    <description>
        Avoid using these classes, there are better alternatives.
    </description>
    <priority>3</priority>
    <properties>
        <property name="xpath">
            <value>
                <![CDATA[
//Name[pmd-java:typeIs('org.apache.commons.lang3.CharEncoding')] |
//Name[pmd-java:typeIs('org.apache.commons.lang.CharEncoding')] |
//Name[pmd-java:typeIs('org.apache.commons.codec.CharEncoding')]
]]>
            </value>
        </property>
    </properties>
</rule>

//Name[starts-with(@Image, 'com.sun.')] 禁止包导入。

答案 1 :(得分:0)

您可以尝试使用以下pmd扩展名将类和方法列入黑名单:https://github.com/LiveRamp/pmd_extensions