需要多行时 Checkstyle 验证失败

Checkstyle validation fail when needs multiple lines

我需要在 eclipse checkstyle 上执行验证规则,在方法的键 { 之后和结束键 } 之前应该有一个空行,例如:

public void wrongMethod() {
    System.out.println("wrong method");
}

正确

public void correctMethod() {

    System.out.println("correct method");

}    

我尝试在 checkstyle 规则 xml 文件中使用 RegexpMultiline,像这样:

<module name="RegexpMultiline">
    <property name="format" value=".+\{\n.+[;]"/>
    <property name="message" value="should have empty line"/>
</module>  

当然,这个 Regex 表达式可以更好,问题是,多行行为在 regex simulator site 中与上面的示例一起工作,但在 checkstyle 中不行。我搜索了一个 checkstyle 文档,但没有找到现成的特征。

有人知道这个问题的解决方案吗?

谢谢。

可能您 运行 检查具有 CRLF 行结尾的文件。如果是,请记住您的模式中的 \r

这对我有用:

<module name="RegexpMultiline">
    <property name="format" value="\{[\r]?\n(?![\r]?\n)"/>
    <property name="message" value="should have empty line"/>
</module>  

我更改了模式中的一些内容: