我有两个包
和com/mydomain/abc/xyz/jaxws/managed
我要求只对第二个软件包禁用checkstyle,因为它们包含自动生成的代理类。
我使用了一个pression.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
包中的checktyle检查,而必须禁用com.mycompany.abc.service.jaxws.service
中的checktyle,要注意的是,除了这种模式之外,我不知道所有的包装名称。感谢致敬
西比
最佳答案
只需使用抑制:
<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>