当前位置: 首页 > 知识库问答 >
问题:

重用checkstyle检查来定义基于XML的自定义模块

谢英光
2023-03-14
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC
      "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
      "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">

    <!-- Disable this -->
    <module name="RegexpSingleline">
        ...
    </module>

    <!-- Disable that -->
    <module name="RegexpSingleline">
        ...
    </module>

    ...
</module>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC
      "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
      "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">

    <!-- Disable this -->
    <myCheck name="DisableNastyThing1">
        <module name="RegexpSingleline">
            ...
        </module>
    </myCheck>

    <!-- Disable that -->
    <myCheck name="DisableNastyThing2">
        <module name="RegexpSingleline">
            ...
        </module>
    </myCheck>

    ...
</module>

禁止DisableNastyThing1或DisableNastyThing2的工作方式与禁止模块完全相同。换句话说,myCheck XML元素名将表示这样一个事实,即该检查没有映射到实现AbstractCheck的实际Java类,而是映射到执行嵌套在其中的检查的一些通用检查。

是不是Checkstyle中已经有这样的概念,而我却没能找到它,还是怎么的?

共有1个答案

汪志业
2023-03-14

您可以向每个检查添加id属性,如下所示:

<!-- Disable this -->
<module name="RegexpSingleline">
    <property name="id" value="DisableNastyThing1"/>
    ...
</module>

<!-- Disable that -->
<module name="RegexpSingleline">
    <property name="id" value="DisableNastyThing2"/>
    ...
</module>

然后可以在suppressons.xml中引用ID:

<suppress files="some/files/" id="DisableNastyThing1" />
<suppress files="some/other/files/" id="DisableNastyThing2" />

这样,您只抑制了一些RegexpSingleLine实例,而不是全部实例。

 类似资料:
  • 我编写了一些自定义checkstyle检查并将它们存储在一个jar中,以便与maven checkstyle插件一起使用。对于eclipse checkstyle插件,我使用了相同的jar。如果我需要更新自定义检查,在maven中很容易(只需在pom中更新版本)。要更新插件,我需要手动替换Eclipse中的插件文件。有办法自动保持这2个文件同步吗?

  • MyCompany-servlet.xml simpleBean.xml(在src/main/resources/mypackage中)

  • 我想在java程序上运行一个用checkstyle实现的简单自定义检查。我遇到了下面的错误。 请原谅,尽管这个错误是有道理的,但我无法在修复上取得任何进展。我已经在帖子的末尾贴出了完整的错误。下面是自定义检查的实现。 checkstyle配置为 包结构为 Com.PuppyCrawl.Tools.CheckStyle.API.CheckStyleException:无法初始化模块TreeWalke

  • 我感兴趣的是创建一个或多个自定义属性源加载器,并在我的应用程序中使用那些带有的属性源。 例如,我想开发一个属性源加载器,它能够加载XML文件并将其转换成一组属性,这些属性可以注入到我的< code>@Configuration注释类中。 是否有任何此类基于 XML 的属性源加载程序公开可用?如果没有,那么一旦我实现了它,我将如何将其提供给我的应用程序? 谢谢。

  • 在我们感受到Atom中所有东西的便利之后,让我们看看如何改进它。可能有一些快捷键你经常使用但是感觉很别扭,或者一些颜色不是十分适合你。Atom具有惊人的灵活性,所以让我们对它做一些力所能及的简单调整。 使用CSON来配置 所有Atom的配置文件(除了你的样式表和初始脚本)全部用CSON编写,全称是CoffeeScript Object Notation。就像JSON(JavaScript Obje