背景
我有一个带有 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,而不使用通配符?
几年后我再次访问这个问题,所以这是我为使其发挥作用所做的事情:
mvn checkstyle:check -Dcheckstyle.includes="**\/Foo.java"
正如之前的答案中提到的,您可以参考文档了解更多详细信息。
以下是您需要了解的有关房产的信息
checkstyle.includes
:
指定用于 Checkstyle 的源文件的名称过滤器。
Type: java.lang.String
Required: Yes
User Property: checkstyle.includes
Default: **\/*.java
您需要使用正确的语法指定参数:
mvn checkstyle:check -Dincludes="src/main/java/MyClass.java"
更多信息:https://maven.apache.org/plugins/maven-checkstyle-plugin/check-mojo.html
路径应该相对于您的源目录。
这唯一标识单个文件
src/main/java/MyClass.java
,因为它不使用通配符路径。
mvn checkstyle:check -Dcheckstyle.includes="MyClass.java"
更典型的是,您会使用 java 包来命名您的类。
mvn checkstyle:check -Dcheckstyle.includes="com/example/myapp/MyClass.java"