15

我有两个包,即

com/mydomain/abc/delegate/xyz/jaxws/managed

com/mydomain/abc/xyz/jaxws/managed

我要求仅对第二个包禁用 checkstyle,因为它们包含自动生成的代理类。

我使用了如下所示的suppression.xml

<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
    "-//Puppy Crawl//DTD Suppressions 1.1//EN"
    "suppressions_1_1.dtd">

<suppressions>
       <!-- Suppress JavadocPackage in the test packages -->
       <suppress checks="JavadocPackage" files="[\\/]test[\\/]"/>

    <!-- Suppress all checkstyle for autogenerated jaxws.managed package -->
    <suppress checks="[a-zA-Z0-9]*" files="([^(delegate)])+([a-z]*[\\/]jaxws[\\/]managed[\\/])+"/>
</suppressions>

请注意,第一个禁用 JavadocPackage 检查的抑制工作正常,但第二个没有。我担心我选择包的正则表达式可能是错误的。任何帮助深表感谢。

举个例子说明我的要求:

选择的标准是包名应该以包名结尾,jaxws.managed但不能包含delegate在包名中。包名中delegate应该有更多内容:jaxws.managed

例如:com.mycomany.delegate.service.jaxws.managed必须启用包中的检查类型检查,而com.mycompany.abc.service.jaxws.service必须禁用包中的检查,并且需要注意的是,除了这种模式之外,我不知道所有的包名称。

感谢和问候西比

4

2 回答 2

18

只需使用抑制:

<suppress checks="." files="com[\\/]mydomain[\\/]abc[\\/]xyz[\\/]jaxws[\\/]managed[\\/]"/>

或者,我建议只将要检查的文件传递给 Checkstyle。例如,如果您使用的是 ANT,请使用 a 指定要处理的文件,并使用 指定要忽略的文件。

例如:

<fileset dir="src">
  <include name="**/*.java"/>
  <exclude name="com/mycompany/abc/service/jaxws/service/*.java"/>
</fileset>
于 2010-10-26T10:54:21.933 回答
-6

(?! 委托\b) [\/][az]*[\/]jaxws[\/]托管[\/]

于 2010-10-31T17:35:20.117 回答