Java Checkstyle RegexpHeader未正确检测正则表达式

Java Checkstyle RegexpHeader未正确检测正则表达式,java,regex,checkstyle,Java,Regex,Checkstyle,我正在尝试添加一个checkstyle配置,以说明代码库中的代码文件应该如何开始。我想要的格式可以用java-^package.*\n\n.中的模式来描述。但是,当我将此模式与RegexpHeader一起使用时,它似乎不起作用。这是我的配置- <module name="RegexpHeader"> <property name="header" value="^package .*\n\n.*"/> <property name="fileExte

我正在尝试添加一个checkstyle配置,以说明代码库中的代码文件应该如何开始。我想要的格式可以用java-
^package.*\n\n.
中的模式来描述。但是,当我将此模式与
RegexpHeader
一起使用时,它似乎不起作用。这是我的配置-

<module name="RegexpHeader">
    <property name="header" value="^package .*\n\n.*"/>
    <property name="fileExtensions" value="java"/>
</module>

我已经创建了一个示例项目。

看起来这张支票不适合我使用它的方式。它应该在文件中的任何代码(包括包声明)之前仅用于头。不过,通过将正则表达式更改为
^package\n^$
,我成功地对其进行了破解,使其适用于我的用例


我还尝试将
emptylinesparatorcheck
PACKAGE_DEF
标记一起使用,但也不起作用,因为该检查忽略了注释行。如果有人知道我可以使用另一个用于我的用例的检查,请让我知道。

胡乱猜测:可能是checkstyle在执行正则表达式检查之前删除了注释吗?请分享您的问题是checkstyle团队建议报告问题的格式,如果无法通过CLI复制,所以问题是插件configuration@RomanIvanov-我在这里提交了新的bug-我认为问题出在
AbstractHeaderCheck
中。如果输入头regex有两个或多个连续的换行符,那么默认行为是接受所有内容,而实际上它应该检查以确保该行为空。通过将正则表达式定义为
^package\n^$
,我成功地绕过了这个问题。因此基本上,
^package
强制要求代码文件的第一行必须以package开头,
\n^$
强制要求第二行为空。
package my.checkstyle.frustrations;
/**
 * Hello world!
 *
 */
public class ShouldFail
{
}