And*_*Law 38 java maven-2 checkstyle
我有一个Maven 2项目,我想配置我的Checkstyle报告插件,以便只分析我的一些类.我找到了该maven.checkstyle.excludes属性,但尽管将其作为命令行参数(使用-D=maven.checkstyle.excludes=...)传递,但我无法使其工作.我在Plugin文档页面上找不到任何内容.理想情况下,我希望能够在<configuration>我的POM部分设置它.
dre*_*rew 53
如果像我一样,你来到这里寻找一种从checkstyle中排除生成源的方法,请执行以下操作:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.15</version>
<configuration>
<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
默认情况下,checkstyle:checkstylecheckstyle插件的目标使用${project.compileSourceRoots},显然包括生成的源目录.
如果将其更改为${project.build.sourceDirectory},则仅使用源目录,而不使用任何生成的源目录.
请注意,虽然<sourceDirectory>已弃用,但替代方法<sourceDirectories>似乎不起作用.
Pas*_*ent 44
如果这个问题是关于Maven 2的,那么该属性是以excludes逗号分隔的Ant模式列表.所以要么在命令行上传递:
-Dexcludes=**/generated/**/*
Run Code Online (Sandbox Code Playgroud)
或者在插件配置中进行设置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<excludes>**/generated/**/*</excludes>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用抑制滤波器.
例如,您可以使用它SuppressionCommentFilter来抑制包含注释CHECKSTYLE:OFF和包含注释的注释之间的审核事件CHECKSTYLE:ON(然后只需将这些注释添加到您不想检查的类或部分代码中).
Chr*_*ren 21
此外,如果要排除多个独立文件夹,可以像这样添加多个独立路径逗号
<excludes>org/log4j/*,com/acme/**/*,com/companyb/*</excludes>
Run Code Online (Sandbox Code Playgroud)
上面的答案对我不起作用,因为我在 Maven 中运行代码生成,它还将目标/生成添加为源目录。
以下解决方案有效:您必须使用显式 checkstyle-suppressions.xml 配置文件并从配置中激活它:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<configLocation>checkstyle.xml</configLocation>
<suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
[...]
Run Code Online (Sandbox Code Playgroud)
用于排除目标文件夹的抑制文件如下所示:
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
"https://checkstyle.org/dtds/suppressions_1_2.dtd">
<suppressions>
<suppress files="[/\\]target[/\\]" checks=".*" />
</suppressions>
Run Code Online (Sandbox Code Playgroud)