首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Check样式限制在某些包上

将Check样式限制在某些包上
EN

Stack Overflow用户
提问于 2020-07-29 11:10:58
回答 1查看 308关注 0票数 0

我有一个有几百个包的项目。它主要是从COBOL到内联java转换生成的代码,所以绝大部分代码(大约11,000个文件)是我不想运行校验样式的。我在项目中确实有几个包是“真正的”java,我添加了这些包来替换代码转换无法生成的实用程序,并且我确实希望对这些实用程序运行校验样式。

我很难让压抑器正常工作。

这是来自checkstyle.xml的相关片段:

代码语言:javascript
复制
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
          "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
          "http://checkstyle.sourceforge.net/dtds/configuration_1_3.dtd">
<!--
    Checkstyle configuration that checks the Google coding conventions from Google Java Style
    that can be found at https://google.github.io/styleguide/javaguide.html.
    Checkstyle is very configurable. Be sure to read the documentation at
    http://checkstyle.sf.net (or in your downloaded distribution).
    To completely disable a check, just comment it out or delete it from the file.
    Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
 -->

<module name = "Checker">
    <property name="charset" value="UTF-8"/>
    <property name="severity" value="warning"/>
    <property name="fileExtensions" value="java, properties, xml"/>
    <module name="FileTabCharacter">
        <property name="eachLine" value="true"/>
    </module>

    <module name="SuppressionFilter">
        <property name="file" value="${config_loc}/checkstyleSuppress.xml"/>
        <property name="optional" value="false"/>
    </module>
    
    <module name="TreeWalker">
        <module name="OuterTypeFilename"/>
        <module name="IllegalTokenText">
            <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
            <property name="format"
             value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
            <property name="message"
             value="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
        </module>
        <module name="AvoidEscapedUnicodeCharacters">
            <property name="allowEscapesForControlCharacters" value="true"/>
            <propert ...

我确信checkstyleSuppress.xml文件正在被读取,因为如果我向文件名中添加一个字符以使其出错,校验样式就会出错。

checkstyleSuppress.xml的内容如下:

代码语言:javascript
复制
<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
  "-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
  "https://checkstyle.org/dtds/suppressions_1_2.dtd">

<suppressions>
    <suppress files="[/\\].+" checks=".*"/>

    <suppress checks=".*" files="app[\\/]dbio[\\/].java"/>
    <suppress checks=".*" files="app[\\/]dbio[\\/]internal[\\/].java"/>
    <suppress checks=".*" files="app[\\/]f17*[\\/].java"/>
    <suppress checks=".*" files="app[\\/]f17*[\\/]internal[\\/].java"/>
</suppressions>

我想要做的是禁止对app.dbio和app.f17*包中的任何东西进行检查。为了查看我的规则是否运行,我在文件中添加了第一行,我认为这将抑制对所有文件的所有检查。

这些过滤器都没有抑制任何东西。Checkstyle检查所有包中的所有文件(并报告超过40万次的违规行为,对于我所关心的那些文件来说,这是一个难以涉猎的问题!)( lol)

大多数项目都是打磨的,所以我以前使用过没有抑制的校验样式。这是我第一次尝试限制代码评审的范围,它并没有像我所希望的那样进行。我不知道我的问题在哪里。

任何建议都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-30 09:24:02

我认为BeforeExecutionExclusionFileFilter是你要找的东西。您可以提供与要排除的包匹配的regexp(s),它们将不会被选中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63152274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档