Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
禁用特定java包的所有checkstyle检查_Java_Xml_Regex_Checkstyle - Fatal编程技术网

禁用特定java包的所有checkstyle检查

禁用特定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/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
。在包名称中,
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”。