【发布时间】:2023-03-14 13:02:01
【问题描述】:
我正在尝试添加一个 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。
【问题讨论】:
-
疯狂猜测:是否是 checkstyle 在进行正则表达式检查之前删除了评论?
-
请分享您的问题是 checkstyle 团队建议报告问题的格式checkstyle.sourceforge.net/… 如果 CLI 无法重现,那么问题是插件配置
-
@RomanIvanov - 我在这里提交了新错误 - github.com/checkstyle/checkstyle/issues/4735
-
我认为问题出在
AbstractHeaderCheck。如果输入标头正则表达式有两个或多个连续的换行符,则默认行为是接受所有内容,而实际上应该检查以确保该行为空。通过将我的正则表达式定义为^package\n^$,我设法绕过了这个问题。所以基本上^package强制代码文件的第一行必须以 package 开头,\n^$强制第二行为空。
标签: java regex checkstyle