使用Maven的Checkstyle XML实现



我正在尝试在我的项目中实现Checkstyle XML。我的pom.xml中包含了以下内容,checkstyle-checker.xml与我的项目位于同一位置。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
<configuration>
<configLocation>checkstyle-checker.xml</configLocation>
</configuration>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.1//EN"
"http://www.puppycrawl.com/dtds/configuration_1_1.dtd">
<module name="Checker">
<module name="TreeWalker">
<module name="EmptyBlock">
<property name="option" value="stmt" />
<property name="severity" value="error" />
<property name="tokens"
value="LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_IF, LITERAL_FOR, LITERAL_TRY, LITERAL_WHILE, STATIC_INIT" />
</module>
<module name="EmptyBlock">
<property name="option" value="text" />
<property name="severity" value="error" />
<property name="tokens" value="LITERAL_CATCH" />
</module>
<module name="MissingSwitchDefault">
<property name="severity" value="error" />
</module>
<module name="StringLiteralEquality">
<property name="severity" value="error" />
</module>
<module name="JavadocStyle">
<property name="checkEmptyJavadoc" value="false" />
<property name="checkFirstSentence" value="false" />
<property name="checkHtml" value="true" />
<property name="scope" value="private" />
<property name="severity" value="error" />
<property name="tokens"
value="INTERFACE_DEF, CLASS_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF" />
</module>
<module name="ConstantName">
<property name="format" value="^[A-Z](_?[A-Z0-9]+)*$" />
<property name="severity" value="error" />
</module>
<module name="MemberName">
<property name="applyToPackage" value="true" />
<property name="applyToPrivate" value="true" />
<property name="applyToProtected" value="true" />
<property name="applyToPublic" value="true" />
<property name="format" value="^[a-zA-Z][a-zA-Z0-9]*$" />
<property name="severity" value="warning" />
</module>
<module name="MethodName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$" />
<property name="severity" value="error" />
</module>
<module name="ParameterName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$" />
<property name="severity" value="error" />
</module>
<module name="TypeName">
<property name="format" value="^[A-Z][a-zA-Z0-9]*$" />
<property name="severity" value="error" />
<property name="tokens" value="CLASS_DEF, INTERFACE_DEF" />
</module>
<module name="NeedBraces">
<property name="tokens"
value="LITERAL_DO, LITERAL_ELSE, LITERAL_IF, LITERAL_FOR, LITERAL_WHILE" />
<property name="severity" value="error" />
</module>
<module name="RedundantImport">
<property name="severity" value="error" />
</module>
<module name="SimplifyBooleanReturn">
<property name="severity" value="warning" />
</module>
<module name="UnusedImports">
<property name="severity" value="error" />
</module>
<module name="ModifierOrder">
<property name="severity" value="error" />
</module>
<module name="MultipleVariableDeclarations">
<property name="severity" value="error" />
</module>
</module>
<module name="SuppressionFilter">
<property name="file" value="${basedir}/suppressions.xml" />
</module>
</module>

当我运行mvn checkstyle:checkstyle时,我得到了以下错误。如果有人能帮助解决缺失的问题,那将是很有帮助的。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:checkstyle (default-cli) on project automation-dev: An error has occurred in Checkstyle report generation. Failed during checkstyle execution: Failed during checkstyle configuration: unable to parse configuration stream: Property ${basedir} has not been set -> [Help 1]

@Tunaki。感谢您的推荐,我能够通过删除来修复此问题

<module name="SuppressionFilter">
  <property name="file" value="${basedir}/suppressions.xml" />
</module>

引用${basedir}/suppressions.xml在解析checkstyle-checker.xml时导致问题,因为它不存在。作为一个即时修复,我删除了它。当有特定的文件需要禁止检查时,可以根据需要包括它

最新更新