Checkstyle RegexpHeader没有正确检测正则表达式

时间:2017-07-14 21:18:22

标签: java regex checkstyle

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

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

这似乎没有失败 -

package my.checkstyle.frustrations;
/**
 * Hello world!
 *
 */
public class ShouldFail
{
}

我创建了一个示例项目here

1 个答案:

答案 0 :(得分:1)

似乎这个检查并不是按照我使用它的方式使用。它应该仅用于头文件,在文件中的任何代码之前(包括包声明)。但是我通过将我的正则表达式更改为^package\n^$来设法破解它以使其适用于我的用例。

我还尝试将EmptyLineSeparatorCheckPACKAGE_DEF令牌一起使用,但它也无效,因为该检查会忽略注释行。如果有人知道我可以使用的另一张支票,请告诉我。