Checkstyle 通过 Maven 运行时可以定位特定文件吗?

问题描述 投票:0回答:3

背景

我有一个带有 Checkstyle 的 Maven 项目。

我运行

mvn checkstyle:check
对所有项目文件运行 Checkstyle。

我想针对特定文件运行它。

举个例子,我想针对

src/main/java/MyClass.java
运行它。

以下作品:

mvn checkstyle:check -Dcheckstyle.includes="**\/MyClass.java"

但是如果我在代码库的其他地方有任何其他同名的类,它也会检查这些类。这很不幸。

以下方法不起作用:

mvn checkstyle:check -Dcheckstyle.includes="src/main/java/MyClass.java"

它只是成功了,告诉我我有 0 个错误。郑重声明,它有错误。所以它显然没有检查该文件。

问题

如何调整此命令以针对路径给出的特定文件运行 Checkstyle,而不使用通配符?

java maven checkstyle
3个回答
2
投票

几年后我再次访问这个问题,所以这是我为使其发挥作用所做的事情:

 mvn checkstyle:check -Dcheckstyle.includes="**\/Foo.java"

正如之前的答案中提到的,您可以参考文档了解更多详细信息。

以下是您需要了解的有关房产的信息

checkstyle.includes
:

指定用于 Checkstyle 的源文件的名称过滤器。

Type: java.lang.String  
Required: Yes  
User Property: checkstyle.includes  
Default: **\/*.java

1
投票

您需要使用正确的语法指定参数:

mvn checkstyle:check -Dincludes="src/main/java/MyClass.java"

更多信息:https://maven.apache.org/plugins/maven-checkstyle-plugin/check-mojo.html


0
投票

路径应该相对于您的源目录

这唯一标识单个文件

src/main/java/MyClass.java
,因为它不使用通配符路径。

mvn checkstyle:check -Dcheckstyle.includes="MyClass.java"

更典型的是,您会使用 java 包来命名您的类。

mvn checkstyle:check -Dcheckstyle.includes="com/example/myapp/MyClass.java"
© www.soinside.com 2019 - 2024. All rights reserved.