禁用特定java包的所有checkstyle检查
我有两个包裹 com/mydomain/abc/delegate/xyz/jaxws/managed 和禁用特定java包的所有checkstyle检查,java,xml,regex,checkstyle,Java,Xml,Regex,Checkstyle,我有两个包裹 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
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
。在包名称中,jaxws.managed
前面应该有更多的delegate
:
例如:com.mycomany.delegate.service.jaxws.managed
中的checktyle检查必须启用,而com.mycomany.abc.service.jaxws.service
中的checktyle检查必须禁用,需要注意的是,除了这个模式之外,我不知道所有的包名
谢谢和问候
Sibi只需使用抑制:
<suppress checks="." files="com[\\/]mydomain[\\/]abc[\\/]xyz[\\/]jaxws[\\/]managed[\\/]"/>
或者,我建议只将要检查的文件传递给Checkstyle。例如,如果您使用的是ANT,请使用指定要处理的文件,并使用指定要忽略的文件
例如:
<fileset dir="src">
<include name="**/*.java"/>
<exclude name="com/mycompany/abc/service/jaxws/service/*.java"/>
</fileset>
(?!delegate\b)[\/][a-z]*[\/]jaxws[\/]managed[\/]你好,奥利弗,谢谢你的回复。您的解决方案在整个包名已知的情况下工作。在我的例子中,选择的标准是包名应以“jaxws.managed”结尾,但包名中不应包含“delegate”。在包名称中“jaxws.managed”之前应该有更多关于“delegate”的内容:例如:必须启用checktyle checks-in包“com.mycomany.delegate.service.jaxws.managed”,而必须禁用com.mycompany.abc.service.jaxws.service中的checktyle checks-in包“com.mycomany.delegate.service.jaxws.managed”。