PMD 与 Maven - 如何禁用规则集中的一条规则?

2024-01-15

我通过 Maven 2 运行 PMD。现在我已经准备好所有规则集来查看生成的内容(请参见下面的代码)。我正在经历并修复对我来说有意义的事情。但是,在某些情况下,例如在“优化”规则集中,我想保留规则集,但是仅禁用规则集中的规则之一。就我而言,我想禁用“AvoidInstantiatingObjectsInLoopss”规则。

这是我的 pom.xml 的报告部分

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jxr-plugin</artifactId>
            <version>2.3</version>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <linkXref>true</linkXref>
                <sourceEncoding>utf-8</sourceEncoding>
                <minimumTokens>${pmd.minimumTokens}</minimumTokens>
                <failOnViolation>${pmd.failOnViolation}</failOnViolation>
                <targetJdk>${projectTargetJdk}</targetJdk>

                <rulesets>
                    <!-- See the FAQ here: http://maven.apache.org/maven-1.x/plugins/pmd/faq.html -->
                    <!-- See the rule sets here: http://pmd.sourceforge.net/ (menu on the left has a Rule Sets section -->
                    <!-- Unused rule sets -->
                    <!-- <ruleset>/rulesets/naming.xml</ruleset> -->

                    <!-- Unable to find rule sets -->
                    <!-- <ruleset>/rulesets/emptycode.xml</ruleset> -->
                    <!-- <ruleset>rulesets/comments.xml</ruleset> -->
                    <!-- <ruleset>/rulesets/unnecessary.xml</ruleset> -->
                    <!-- <ruleset>/rulesets/logging.xml</ruleset> -->

                    <!-- used rule sets -->
                    <!-- http://pmd.sourceforge.net/rules/java/basic.html -->
                    <ruleset>/rulesets/basic.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/braces.html -->
                    <ruleset>/rulesets/braces.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/clone.html -->
                    <ruleset>/rulesets/clone.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/codesize.html -->
                    <ruleset>/rulesets/codesize.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/controversial.html -->
                    <ruleset>/rulesets/controversial.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/coupling.html -->
                    <ruleset>/rulesets/coupling.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/design.html -->
                    <ruleset>/rulesets/design.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/finalizers.html -->
                    <ruleset>/rulesets/finalizers.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/imports.html -->
                    <ruleset>/rulesets/imports.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/j2ee.html -->
                    <ruleset>/rulesets/j2ee.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/junit.html -->
                    <ruleset>/rulesets/junit.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/javabeans.html -->
                    <ruleset>/rulesets/javabeans.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/migrating.html -->
                    <ruleset>/rulesets/migrating.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/optimizations.html -->
                    <ruleset>/rulesets/optimizations.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/strictexception.html -->
                    <ruleset>/rulesets/strictexception.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/strings.html -->
                    <ruleset>/rulesets/strings.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/sunsecure.html -->
                    <ruleset>/rulesets/sunsecure.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/typeresolution.html -->
                    <ruleset>/rulesets/typeresolution.xml</ruleset>
                    <!-- http://pmd.sourceforge.net/rules/java/unusedcode.html -->
                    <ruleset>/rulesets/unusedcode.xml</ruleset>
                </rulesets>
            </configuration>
        </plugin>
    </plugins>
</reporting>

规则的定义及其激活位于规则集文件中。 由于您在“rulesets”文件夹中拥有文件的副本,因此只需删除或注释规则集文件上包含规则引用的节点即可。 在本例中,“AvoidInstantiatingObjectsInLoops”(net.sourceforge.pmd.rules.optimization.AvoidInstantiatingObjectsInLoops) 是一个优化规则,因此它可能位于“/rulesets/optimizations.xml”中。

只需编辑文件,查找包含的规则,然后注释或删除相应的规则节点即可。

我不知道您的文件的内容,因此您可能多次包含该规则。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PMD 与 Maven - 如何禁用规则集中的一条规则? 的相关文章

随机推荐

  • 编写脚本来检查远程主机服务是否运行[重复]

    这个问题在这里已经有答案了 这是脚本 但即使 Apache 正在运行其 show stop 输出也是错误的 我使用的是 Ubuntu 12 04 ssh qn root ip if ps aux grep h ttpd gt dev nul
  • 发送电子邮件时出现 VBScript 错误“80040211”

    我在发送电子邮件时遇到错误 错误 80040211 这是我的代码的示例 Dim objMessage Set objMessage CreateObject CDO Message objMessage Subject Super Serv
  • 向元组添加值

    我最初使用 Idictonary 在 MVC 模型中存储字符串值 如下所示 public IDictionary
  • JavaScript 数组排序中的奇怪行为[重复]

    这个问题在这里已经有答案了 我在尝试对 JavaScript 数组进行排序时遇到了奇怪的行为 var arr a b C d e f g h I k arr sort function a b console log a b if a le
  • 为什么 Funcs 不接受超过 16 个参数?

    由于 Javascript 是我最精通的语言 因此我熟悉使用函数作为一等对象 我原本以为C 缺少这个功能 但后来我听说了Func and Action and delegate 我认为这非常棒 例如 您可以声明一个Func连接两个字符串并在
  • 我这里如何使用锁和条件?

    这里我有一个任务 我必须使用锁和条件 在方法 sum 和 randomSwap 中是我必须完成的任务 所以列举了我必须做的事情 首先是没有我编辑的方法中的类和任务 public class LockedDataObject extends
  • Darwin 10.15 上的自修改代码导致“格式错误的 mach-o 图像”?

    我有一个可以生成自修改代码的程序 请参阅https tigress wtf selfModify html https tigress wtf selfModify html如果你有兴趣的话 它在 x86 Darwin 和 Linux 上运
  • Zend 框架和 Couch DB

    Zend Framework 是否具有本机 Couch DB 支持 我只找到了 Matthew Weier O Phinney 的 Zend Couch http framework zend com wiki display ZFPROP
  • 如何使用 Elixir 生成随机 url 安全字符串

    我需要能够生成随机 url 安全字符串 以便我可以在链接中使用这些字符串 例如发送到用户电子邮件的激活链接 那么如何生成它呢 有没有办法只用 Elixir 来做到这一点 或者我必须使用一些库 您可以做的是生成一个 Base64 编码的字符串
  • 在.NET Core应用程序中可靠地终止通过cmd进程启动的node.js进程

    我想解决什么问题 为了改进我的构建管道 我想添加端到端测试步骤 我计划通过 CLI 工具 NET 控制台应用程序 来实现它 该工具将启动并编排一些npm node命令 进程 更具体地说 将会有 后端流程 前端流程 和一个测试过程 当测试过程
  • java.lang.ClassCastException: someClass 与 someClass 不兼容的含义

    我在 XPage 应用程序中偶尔遇到异常 java lang ClassCastException someClass incompatible with someClass 两个提到的类是相同的 都是用作会话bean的类 我无法用谷歌搜索
  • 如何为 M1 和 Intel 构建 openssl?

    我有一个需要使用 Libcrypto 的项目 我有两个版本的 Libcrypto 为 ARM64 构建的 libcrypto a 来自 OpenSSL 1 1 1 和 针对 Intel 的 lcrypto a 来自 OpenSSL 1 0
  • 修改控制器代码后出现“NameError,未初始化常量”错误

    我最近能够通过将所有内容分组到文件夹中来组织我的代码 我遇到了一个问题 即我的两个控制器组在以下情况下具有相同的 组名称 app 目录和我的模块下lib 目录 但我能够通过以下方式修复 Rails 库模块和一组控制器同名吗 https st
  • 如何在 yii2 中使用复选框删除多行

    如何在 GridView 中使用删除选定的对象 在 Yii 2 Framework 中如下图所示 在此输入图像描述 2 尝试这个
  • 为什么叫BSON?

    那么 BSON 是 JSON 序列化的吗 hello world x16 x00 x00 x00 x02hello x00 x06 x00 x00 x00world x00 x00 但为什么叫Binary Json呢 二进制代表什么 我总是
  • 如何使 echo 解释反斜杠转义而不打印尾随换行符?

    我想用echo在 bash 中打印出一串字符 后跟一个回车符 我浏览了手册页并发现echo e将使echo解释反斜杠转义字符 用它我可以说echo e hello r 它会像这样打印 gt echo e hello r hello gt 所
  • 当键与多个值关联时,在Python中查找值的键

    对于该类型的字典 key1 v1 v2 v3 key2 v2 v4 How do I 查找与值 v 关联的任何键 将 k value set 对打印到新字典中 answer to 1st question keys with value k
  • 将bean注入GraphQL的DataFetcher

    我在用着Spring graphql java graphql java 注释 在我的项目中 为了检索数据部分 我使用 DataFetcher 从服务 从数据库 获取数据 奇怪的是 myService总是null 有人知道原因吗 数据获取器
  • data.table 不计算 NA 组

    这个问题有部分答案here https stackoverflow com questions 47444012 skip na in data table by但问题太具体了 我无法将其应用于我自己的问题 我想在使用时跳过 NA 组的潜在
  • PMD 与 Maven - 如何禁用规则集中的一条规则?

    我通过 Maven 2 运行 PMD 现在我已经准备好所有规则集来查看生成的内容 请参见下面的代码 我正在经历并修复对我来说有意义的事情 但是 在某些情况下 例如在 优化 规则集中 我想保留规则集 但是仅禁用规则集中的规则之一 就我而言 我