maven配置checkstyle检查的自定义模块

转载请注意出处:http://blog.csdn.net/hwhua1986/article/details/50298133

maven官方配置说明:
Maven官方配置说明:http://maven.apache.org/plugins/maven-checkstyle-plugin/

步骤(1)配置自定义检查的xml。如下:

该配置可以组内开发人员配置。





<module name="Checker">
  <property name="severity" value="warning"/>
  <module name="TreeWalker">
    <module name="ConstantName"/>
    <module name="LocalFinalVariableName"/>
    <module name="MemberName"/>
    <module name="MethodName"/>
    <module name="PackageName"/>
    <module name="StaticVariableName"/>
    <module name="TypeName"/>
    <module name="AvoidStarImport"/>
    <module name="IllegalImport"/>
    <module name="RedundantImport"/>
    <module name="UnusedImports"/>
    <module name="LineLength"/>
    <module name="MethodLength"/>
    <module name="ParameterNumber">
      <property name="tokens" value="METHOD_DEF"/>
    module>
    <module name="EmptyForIteratorPad"/>
    <module name="GenericWhitespace"/>
    <module name="MethodParamPad"/>
    <module name="NoWhitespaceAfter"/>
    <module name="NoWhitespaceBefore"/>
    <module name="OperatorWrap"/>
    <module name="ParenPad"/>
    <module name="TypecastParenPad"/>
    <module name="WhitespaceAfter"/>
    <module name="WhitespaceAround"/>
    <module name="ModifierOrder"/>
    <module name="RedundantModifier"/>
    <module name="AvoidNestedBlocks"/>
    <module name="EmptyBlock"/>
    <module name="LeftCurly">
      <property name="option" value="nl"/>
      <property name="tokens" value="ANNOTATION_DEF,LITERAL_CATCH,CLASS_DEF,CTOR_DEF,LITERAL_DO,LITERAL_ELSE,ENUM_CONSTANT_DEF,ENUM_DEF,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,INTERFACE_DEF,METHOD_DEF,LITERAL_SWITCH,LITERAL_SYNCHRONIZED,LITERAL_TRY,LITERAL_WHILE"/>
    module>
    <module name="NeedBraces">
      <property name="tokens" value="LITERAL_DO,LITERAL_ELSE,LITERAL_FOR,LITERAL_IF,LITERAL_WHILE"/>
    module>
    <module name="RightCurly">
      <property name="option" value="alone"/>
      <property name="tokens" value="LITERAL_CATCH,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_IF,LITERAL_TRY"/>
    module>
    <module name="AvoidInlineConditionals"/>
    <module name="EmptyStatement"/>
    <module name="EqualsHashCode"/>
    <module name="HiddenField">
      <property name="tokens" value="VARIABLE_DEF"/>
      <property name="ignoreConstructorParameter" value="true"/>
      <property name="ignoreSetter" value="true"/>
      <property name="setterCanReturnItsClass" value="true"/>
      <property name="ignoreAbstractMethods" value="true"/>
    module>
    <module name="IllegalInstantiation"/>
    <module name="InnerAssignment"/>
    <module name="MagicNumber">
      <property name="ignoreHashCodeMethod" value="true"/>
      <property name="ignoreAnnotation" value="true"/>
      <property name="ignoreFieldDeclaration" value="true"/>
      <property name="constantWaiverParentToken" value="DIV,MINUS,UNARY_MINUS,STAR,PLUS,UNARY_PLUS,ASSIGN,ARRAY_INIT,EXPR,ELIST,METHOD_CALL,LITERAL_NEW,TYPECAST"/>
    module>
    <module name="MissingSwitchDefault"/>
    <module name="SimplifyBooleanExpression"/>
    <module name="SimplifyBooleanReturn"/>
    <module name="FinalClass"/>
    <module name="HideUtilityClassConstructor"/>
    <module name="InterfaceIsType"/>
    <module name="VisibilityModifier"/>
    <module name="ArrayTypeStyle"/>
    <module name="TodoComment"/>
    <module name="UpperEll"/>
    <module name="LeftCurly">
      <property name="option" value="nl"/>
    module>
    <module name="RightCurly">
      <property name="option" value="alone"/>
      <property name="tokens" value="LITERAL_CATCH,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_IF,LITERAL_TRY"/>
    module>
    <module name="LeftCurly">
      <property name="option" value="nl"/>
      <property name="tokens" value="ANNOTATION_DEF,LITERAL_CATCH,CLASS_DEF,CTOR_DEF,LITERAL_DO,LITERAL_ELSE,ENUM_CONSTANT_DEF,ENUM_DEF,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,INTERFACE_DEF,METHOD_DEF,LITERAL_SWITCH,LITERAL_SYNCHRONIZED,LITERAL_TRY,LITERAL_WHILE"/>
    module>
    <module name="EmptyLineSeparator">
      <property name="tokens" value="CLASS_DEF,CTOR_DEF,ENUM_DEF,IMPORT,INSTANCE_INIT,INTERFACE_DEF,METHOD_DEF,PACKAGE_DEF,STATIC_INIT,VARIABLE_DEF"/>
    module>
  module>
  <module name="Translation"/>
  <module name="FileLength"/>
  <module name="FileTabCharacter"/>
module>

步骤(2)将自定义的xml模板放在一个目录下。我这里放在根目录下。
maven配置checkstyle检查的自定义模块_第1张图片

步骤(3)修改pom文件
在节点上增加模板路径配置,如下图
maven配置checkstyle检查的自定义模块_第2张图片
备注:如果模板checkstyle-checker.xml放在config目录下,则配置成如下格式:

.config.location>config/checkstyle-checker.xml.config.location>

步骤(4)将原来的xml路径进行注释
将Build中的一段代码注释
maven配置checkstyle检查的自定义模块_第3张图片
将Reporting中的一段代码注释

maven配置checkstyle检查的自定义模块_第4张图片

步骤(5)构建
maven配置checkstyle检查的自定义模块_第5张图片

未使用自定义模板的构建控制台输出如图:
未使用自定义模板的时候,默认使用sun_check.xml模板,该模板检查要求非常严格。

maven配置checkstyle检查的自定义模块_第6张图片

从官网可以看出默认模板使用的是sun_checker模板
maven配置checkstyle检查的自定义模块_第7张图片

你可能感兴趣的:(Jenkins,Maven,checkstyle)