定义自己的代码风格CheckStyle简单使用
<?xml version="1.0" encoding="UTF-8"?> DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN" "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"> <module name="Checker"> <property name="charset" value="UTF-8"/> <property name="severity" value="warning"/> <module name="FileLength"> <property name="max" value="2500"/> module> <module name="TreeWalker"> <module name="AvoidStarImport"/> <module name="IllegalImport"/> <module name="RedundantImport"/> <module name="UnusedImports"/> <module name="JavadocType"> <property name="authorFormat" value="\S"/> <property name="scope" value="protected"/> <property name="tokens" value="CLASS_DEF,INTERFACE_DEF"/> module> <module name="JavadocMethod"> <property name="scope" value="private"/> <property name="allowMissingParamTags" value="true"/> <property name="allowMissingThrowsTags" value="true"/> <property name="allowMissingReturnTag" value="true"/> <property name="tokens" value="METHOD_DEF"/> <property name="allowUndeclaredRTE" value="true"/> <property name="allowThrowsTagsForSubclasses" value="true"/> <property name="allowMissingPropertyJavadoc" value="true"/> module> <module name="LeftCurly"> <property name="option" value="eol"/> module> <module name="NeedBraces"/> <module name="RightCurly"> <property name="option" value="alone"/> module> <module name="EqualsHashCode"/> <module name="IllegalInstantiation"> <property name="classes" value="java.lang.Boolean"/> module> <module name="LocalFinalVariableName"/> <module name="LocalVariableName"/> <module name="StaticVariableName"> <property name="format" value="(^[A-Z0-9_]{0,19}$)"/> module> <module name="PackageName" > <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/> module> <module name="TypeName"> <property name="format" value="(^[A-Z][a-zA-Z0-9]{0,19}$)"/> module> <module name="MethodName"> <property name="format" value="(^[a-z][a-zA-Z0-9]{0,19}$)"/> module> <module name="MemberName"> <property name="format" value="(^[a-z][a-z0-9][a-zA-Z0-9]{0,19}$)"/> module> <module name="ParameterName"> <property name="format" value="(^[a-z][a-zA-Z0-9_]{0,19}$)"/> module> <module name="ConstantName"> <property name="format" value="(^[A-Z0-9_]{0,19}$)"/> module> <module name="Indentation"> module> <module name="SimplifyBooleanExpression"/> <module name="SimplifyBooleanReturn"/> <module name="FinalClass"/> <module name="VisibilityModifier"/> <module name="MultipleVariableDeclarations"> module> <module name="ArrayTypeStyle"> module> <module name="TodoComment"/> <module name="UpperEll"/> <module name="MissingSwitchDefault"/> <module name="FallThrough"/> <module name="ParameterNumber"> <property name="max" value="5"/> module> <module name="LineLength"> <property name="max" value="200"/> module> <module name="MethodLength"> <property name="max" value="200"/> module> <module name="ModifierOrder"> module> <module name="RedundantModifier"> module> <module name="StringLiteralEquality"> module> <module name="NestedIfDepth"> <property name="max" value="3"/> module> <module name="NestedTryDepth"> <property name="max" value="2"/> module> <module name="ReturnCount"> <property name="max" value="5"/> <property name="format" value="^$"/> module> module> module>
将上面的文件放到对应的目录下,然后在pom.xml里面配置一下内容,就能够实现maven每次打包的时候校验代码风格
<plugins> <plugin> <groupId>org.apache.maven.pluginsgroupId> <artifactId>maven-checkstyle-pluginartifactId> <version>3.0.0version> <executions> <execution> <id>checkstyle-validationid> <phase>validatephase> <configuration> <configLocation>checkstyle/checkStyle.xmlconfigLocation> <headerLocation>checkstyle/checkstyle-header.txtheaderLocation> <encoding>UTF-8encoding> <consoleOutput>trueconsoleOutput> <failOnViolation>truefailOnViolation> <includeTestSourceDirectory>trueincludeTestSourceDirectory> configuration> <goals> <goal>checkgoal> goals> execution> executions> <dependencies> <dependency> <groupId>com.puppycrawl.toolsgroupId> <artifactId>checkstyleartifactId> <version>8.8version> dependency> dependencies> plugin> plugins>
checkstyle可以根据自己公司的具体情况修改,当然也可以参考阿里的checkstyle约束