gradle checkstyle配置

来源:互联网 发布:mac怎么给文件夹重命名 编辑:程序博客网 时间:2024/06/03 23:46
<?xml version="1.0"?><!DOCTYPE suppressions PUBLIC    "-//Puppy Crawl//DTD Suppressions 1.1//EN"    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd"><suppressions>    <suppress checks="IllegalTokenText"              files="CommonUtil.java"/>    <suppress checks="AvoidEscapedUnicodeCharacters"              files="CommonUtil.java"/>    <suppress checks="MethodName"              files="CommonUtil.java"/></suppressions>
checkstyle {    toolVersion '6.11.1'    showViolations true}check.dependsOn 'checkstyle'task checkstyle(type: Checkstyle) {    configFile file("${project.projectDir}/config/quality/checkstyle.xml")    // Where my checkstyle config is...    configProperties.checkstyleSuppressionsPath = file("${project.projectDirr}/config/quality/suppressions.xml").absolutePath // Where is my suppressions file for checkstyle is...    source 'src'    include '**/*.java'    exclude '**/gen/**'    exclude "**/test/**"    classpath = files()}

狠一点可以在build.gradle里加上下面这个,每次构建都会检查

project.afterEvaluate {    preBuild.dependsOn 'checkstyle'}
<?xml version="1.0"?><!DOCTYPE module PUBLIC    "-//Puppy Crawl//DTD Check Configuration 1.3//EN"    "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"><!--    Checkstyle configuration that checks the Google coding conventions from Google Java Style    that can be found at https://google.github.io/styleguide/javaguide.html.    Checkstyle is very configurable. Be sure to read the documentation at    http://checkstyle.sf.net (or in your downloaded distribution).    To completely disable a check, just comment it out or delete it from the file.    Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov. --><module name="Checker">    <property name="charset" value="UTF-8"/>    <property name="severity" value="warning"/>    <!--<property name="fileExtensions" value="java, properties, xml"/>-->    <!-- Checks for whitespace                               -->    <!-- See http://checkstyle.sf.net/config_whitespace.html -->    <module name="FileTabCharacter">        <property name="eachLine" value="true"/>    </module>    <module name="TreeWalker">        <module name="OuterTypeFilename"/>        <module name="IllegalTokenText">            <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>            <property name="format"                      value="\\u00(08|09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>            <property name="message" value="Avoid using corresponding octal or Unicode escape."/>        </module>        <module name="AvoidEscapedUnicodeCharacters">            <property name="allowEscapesForControlCharacters" value="true"/>            <property name="allowByTailComment" value="true"/>            <property name="allowNonPrintableEscapes" value="true"/>        </module>        <!--单行最大长度,google100,修改-->        <module name="LineLength">            <property name="max" value="200"/>            <property name="ignorePattern"                      value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>        </module>        <module name="AvoidStarImport"/><!--import要指明到类 不能包含*-->        <module name="OneTopLevelClass"/>        <module name="NoLineWrap"/>        <module name="EmptyBlock">            <property name="option" value="TEXT"/>            <property name="tokens"                      value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH,LITERAL_WHILE,LITERAL_FOR,LITERAL_CASE"/>        </module>        <module name="NeedBraces"/>        <!--option: 定义左大括号'{'显示位置,eol在同一行显示,nl在下一行显示         maxLineLength: 大括号'{'所在行行最多容纳的字符数         tokens: 该属性适用的类型,例:CLASS_DEF,INTERFACE_DEF,METHOD_DEF,CTOR_DEF -->        <module name="LeftCurly">            <property name="maxLineLength" value="100"/>        </module>        <module name="RightCurly"/>        <module name="RightCurly">            <property name="option" value="alone"/>            <property name="tokens"                      value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO, STATIC_INIT, INSTANCE_INIT"/>        </module>        <!--检查空格 方法体前括号,比较操作符两边空格等-->        <module name="WhitespaceAround">            <property name="allowEmptyConstructors" value="true"/>            <property name="allowEmptyMethods" value="true"/>            <property name="allowEmptyTypes" value="true"/>            <property name="allowEmptyLoops" value="true"/>            <message key="ws.notFollowed"                     value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>            <message key="ws.notPreceded"                     value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>        </module>        <module name="OneStatementPerLine"/>        <!--一行声明一个变量-->        <module name="MultipleVariableDeclarations"/>        <module name="ArrayTypeStyle"/>        <!--default clause-->        <module name="MissingSwitchDefault"/>        <!--case break-->        <module name="FallThrough"/>        <!--Long型常量后缀-->        <module name="UpperEll"/>        <module name="ModifierOrder"/>        <!--空行规则-->        <module name="EmptyLineSeparator">            <property name="allowNoEmptyLineBetweenFields" value="true"/>        </module>        <module name="SeparatorWrap">            <property name="tokens" value="DOT"/>            <property name="option" value="nl"/>        </module>        <module name="SeparatorWrap">            <property name="tokens" value="COMMA"/>            <property name="option" value="EOL"/>        </module>        <module name="PackageName">            <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>            <message key="name.invalidPattern"                     value="Package name ''{0}'' must match pattern ''{1}''."/>        </module>        <module name="TypeName">            <message key="name.invalidPattern"                     value="Type name ''{0}'' must match pattern ''{1}''."/>        </module>        <!--成员变量命名规则--><!--修改-->        <module name="MemberName">            <property name="format" value="^m[A-Z][a-zA-Z0-9]*$"/>            <message key="name.invalidPattern"                     value="Member name ''{0}'' must match pattern ''{1}''."/>        </module>        <!--参数命名规则--><!--修改-->        <module name="ParameterName">            <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>            <message key="name.invalidPattern"                     value="Parameter name ''{0}'' must match pattern ''{1}''."/>        </module>        <!--unused start-->        <!--<module name="CatchParameterName">-->        <!--<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>-->        <!--<message key="name.invalidPattern"-->        <!--value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>-->        <!--</module>-->        <!--unused end-->        <module name="LocalVariableName">            <property name="tokens" value="VARIABLE_DEF"/>            <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>            <property name="allowOneCharVarInForLoop" value="true"/>            <message key="name.invalidPattern"                     value="Local variable name ''{0}'' must match pattern ''{1}''."/>        </module>        <module name="ClassTypeParameterName">            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>            <message key="name.invalidPattern"                     value="Class type name ''{0}'' must match pattern ''{1}''."/>        </module>        <module name="MethodTypeParameterName">            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>            <message key="name.invalidPattern"                     value="Method type name ''{0}'' must match pattern ''{1}''."/>        </module>        <module name="InterfaceTypeParameterName">            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>            <message key="name.invalidPattern"                     value="Interface type name ''{0}'' must match pattern ''{1}''."/>        </module>        <!--不能定义finalize方法-->        <module name="NoFinalizer"/>        <!--泛型表示中的空格规则-->        <module name="GenericWhitespace">            <message key="ws.followed"                     value="GenericWhitespace ''{0}'' is followed by whitespace."/>            <message key="ws.preceded"                     value="GenericWhitespace ''{0}'' is preceded with whitespace."/>            <message key="ws.illegalFollow"                     value="GenericWhitespace ''{0}'' should followed by whitespace."/>            <message key="ws.notPreceded"                     value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>        </module>        <!--缩进规则-->        <module name="Indentation">            <property name="basicOffset" value="4"/>            <property name="braceAdjustment" value="0"/>            <property name="caseIndent" value="4"/>            <property name="throwsIndent" value="4"/>            <property name="arrayInitIndent" value="4"/>            <property name="lineWrappingIndentation" value="4"/>        </module>        <!--名称中缩写,驼峰规则-->        <module name="AbbreviationAsWordInName">            <property name="ignoreFinal" value="false"/>            <property name="allowedAbbreviationLength" value="1"/>        </module>        <!--重载方法不能被其他方法间隔开-->        <module name="OverloadMethodsDeclarationOrder"/>        <!--局部变量声明与使用的间隔,默认3行-->        <module name="VariableDeclarationUsageDistance"/>        <!--import规则与android studio IDE 不一致,采用IDE规则-->        <!--<module name="CustomImportOrder">-->            <!--<property name="specialImportsRegExp" value="com.google"/>-->            <!--<property name="sortImportsInGroupAlphabetically" value="true"/>-->            <!--<property name="customImportOrderRules"-->                      <!--value="STATIC###SPECIAL_IMPORTS###THIRD_PARTY_PACKAGE###STANDARD_JAVA_PACKAGE"/>-->        <!--</module>-->        <module name="MethodParamPad"/>        <module name="OperatorWrap">            <property name="option" value="NL"/>            <property name="tokens"                      value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR "/>        </module>        <module name="AnnotationLocation">            <property name="tokens"                      value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>        </module>        <module name="AnnotationLocation">            <property name="tokens" value="VARIABLE_DEF"/>            <property name="allowSamelineMultipleAnnotations" value="true"/>        </module>        <!--@注释 @param, @return, @throws, @deprecated -->        <module name="NonEmptyAtclauseDescription"/>        <module name="JavadocTagContinuationIndentation"/>        <!--unused start-->        <!--注释文档规则,@return 不能包含的文字,第一句注释结尾标点-->        <!--<module name="SummaryJavadoc">-->            <!--<property name="forbiddenSummaryFragments"-->                      <!--value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>-->        <!--</module>-->        <!--unused end-->        <module name="JavadocParagraph"/>        <module name="AtclauseOrder">            <property name="tagOrder" value="@param, @return, @throws, @deprecated"/>            <property name="target"                      value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>        </module>        <!--方法注释 修改 可以不添加方法注释-->        <module name="JavadocMethod">            <property name="scope" value="public"/>            <property name="allowMissingParamTags" value="true"/>            <property name="allowMissingThrowsTags" value="true"/>            <property name="allowMissingReturnTag" value="true"/>            <property name="minLineCount" value="2"/>            <property name="allowedAnnotations" value="Override, Test"/>            <property name="allowThrowsTagsForSubclasses" value="true"/>            <property name="allowMissingJavadoc"  value="true"  />        </module>        <module name="MethodName">            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>            <message key="name.invalidPattern"                     value="Method name ''{0}'' must match pattern ''{1}''."/>        </module>        <!--these unused start-->        <!--<module name="SingleLineJavadoc">-->        <!--<property name="ignoreInlineTags" value="false"/>-->        <!--</module>-->        <!--<module name="EmptyCatchBlock">-->        <!--<property name="exceptionVariableName" value="expected"/>-->        <!--</module>-->        <!--<module name="CommentsIndentation"/>-->        <!--these unused end-->        <!--嵌套深度-->        <module name="NestedForDepth"/>        <module name="NestedTryDepth"/>        <module name="NestedIfDepth">            <property name="max" value="3"/>        </module>        <!--<module name="MethodLength">-->            <!--<property name="max" value="20"/>-->            <!--<property name="countEmpty"  value="false"/>-->        <!--</module>-->        <module name="SimplifyBooleanExpression"/>        <module name="StaticVariableName" >            <property name="format" value="^s[A-Z][a-zA-Z0-9]*$"/>        </module>        <!--<module name="TodoComment"/>-->    </module></module>
0 0
原创粉丝点击