`
xinyoulinglei
  • 浏览: 125991 次
社区版块
存档分类
最新评论

PMD.xml文件

    博客分类:
  • java
 
阅读更多
<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="Favorites"
    xmlns="http://pmd.sf.net/ruleset/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
    xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">

  <description>
     规则版本号:V1.2(2008-11-04)
     去除规则AvoidUsingHardCodedIP
     增加规则-------级别为3----------------------------------
             EmptyStaticInitializer、EmptyStatementNotInLoop、UnnecessaryFinalModifier、
             ExcessiveParameterList、UnnecessaryConstructor、DontImportSun、UseSingleton、
             AvoidDeeplyNestedIfStmts、DefaultLabelNotLastInSwitchStmt、NonCaseLabelInSwitchStatement、
             AvoidInstanceofChecksInCatchClause、SimplifyConditional、AvoidCallingFinalize、
             DontImportJavaLang、ImportFromSamePackage、BooleanGetMethodName、
             SignatureDeclareThrowsException、AvoidThrowingRawExceptionTypes、DoNotExtendJavaLangError
             -------级别为4----------------------------------
             OverrideBothEqualsAndHashcode、EmptySynchronizedBlock、UselessOperationOnImmutable、
             MisplacedNullCheck、BrokenNullCheck、IfStmtsMustUseBraces、WhileLoopsMustUseBraces、
             IfElseStmtsMustUseBraces、ForLoopsMustUseBraces、AvoidAccessibilityAlteration、
             DoNotCallGarbageCollectionExplicitly、BadComparison、InstantiationToGetClass、
             UseNotifyAllInsteadOfNotify、ReturnEmptyArrayRatherThanNull、StringInstantiation、
             StringToString、UseEqualsToCompareStrings、UnusedPrivateField、UnusedPrivateMethod
            
    
     规则版本号:V1.1(2008-08-13)
     去除规则ShortVariable
    
     规则版本号:V1.0(2008-08-11)
     推荐指数是4、5级的规则。
  </description>


  <!--====================Basic Rules begin(共33个)======================-->
  <rule ref="rulesets/basic.xml/EmptyCatchBlock">
    <properties>
        <property name="allowCommentedBlocks" value="false"/>
    </properties>
  </rule>
  <!--不允许出现空的catch块,避免屏蔽异常,不处理或不报告异常。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/EmptyIfStmt"/>
  <!--不允许有空if语句块(或空else块)。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/EmptyWhileStmt"/>
  <!--不允许有空while循环块。注意:不包括do循环。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/EmptyTryBlock"/>
  <!--不允许有空try块。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/EmptyFinallyBlock"/>
  <!--不允许有空finally块。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/EmptySwitchStatements"/>
  <!--不允许有空switch块。与这个规则重复:rulesets/design.xml/SwitchStmtsShouldHaveDefault、MissingBreakInSwitch。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/JumbledIncrementer"/>
  <!--避免混乱的循环变量赋值(避免在内循环里修改外循环变量)。与这个规则有点重复:rulesets/controversial.xml/DataflowAnomalyAnalysis。(FindBugs不检查)-->
  <!--rule ref="rulesets/basic.xml/ForLoopShouldBeWhileLoop"/-->
  <!--简单的for循环可以用while循环取代。(FindBugs不检查,注,FindBugs能发现死循环)-->
  <!--rule ref="rulesets/basic.xml/UnnecessaryConversionTemporary"/-->
  <!--当基本型数据转换成String时,避免不必要的临时对象。(FindBugs检查)-->
  <rule ref="rulesets/basic.xml/OverrideBothEqualsAndHashcode"/>
  <!--equals和hashcode同时定义。(FindBugs检查)-->
  <!--rule ref="rulesets/basic.xml/DoubleCheckedLocking"/-->
  <!--doublecheck问题。(FindBugs检查)-->
  <rule ref="rulesets/basic.xml/ReturnFromFinallyBlock"/>
  <!--禁止在finally块里return,避免屏蔽异常。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/EmptySynchronizedBlock"/>
  <!--避免空的同步块。(FindBugs检查)-->
  <!--rule ref="rulesets/basic.xml/UnnecessaryReturn"/-->
  <!--方法返回值void,避免不必要的return。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/EmptyStaticInitializer"/>
  <!--空的static初始化。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/UnconditionalIfStatement"/>
  <!--if语句的条件始终是true或false。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/EmptyStatementNotInLoop"/>
  <!--出现了空语句(就一个分号),如果在循环里则可以。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/BooleanInstantiation"/>
  <!--避免实例化Boolean对象,而应用常量Boolean.TRUE, Boolean.FALSE。(FindBugs只检查构造方法生成对象的情况,不检查valueOf)-->
  <rule ref="rulesets/basic.xml/UnnecessaryFinalModifier"/>
  <!--当一个类定义成final后,它所有的方法自动final。(FindBugs不检查)-->
  <!--rule ref="rulesets/basic.xml/CollapsibleIfStatements"/-->
  <!--内嵌的if语句能够和外层的if语句合并成一个if语句。(FindBugs不检查)-->
  <!--rule ref="rulesets/basic.xml/UselessOverridingMethod"/-->
  <!--被覆盖的方法仅仅调用了基类的方法。(FindBugs检查)-->
  <rule ref="rulesets/basic.xml/ClassCastExceptionWithToArray"/>
  <!--Collection.toArray调用转换成数组,应主动传一个明确类型的数组对象,否则运行时会抛ClassCastException异常。相似规则:rulesets/design.xml/OptimizableToArrayCall。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor"/>
  <!--new BigDecimal建议用String参数的构造方法,而不是十进制小数常量(整数除外)。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/UselessOperationOnImmutable"/>
  <!--不可变对象(如BigDecimal、BigInteger)上的操作结果被忽略。(FindBugs检查)-->
  <rule ref="rulesets/basic.xml/MisplacedNullCheck"/>
  <!--空指针判断放错了位置。要么之前已报空指针,要么此处永远不可能是空指针。(FindBugs检查)-->
  <!--rule ref="rulesets/basic.xml/UnusedNullCheckInEquals"/-->
  <!--在判断了对象是否是空指针后,后面紧接着调用该对象的equals方法,而不是将对象作为另一个对象的equals参数。(FindBugs不检查)-->
  <!--rule ref="rulesets/basic.xml/AvoidThreadGroup"/-->
  <!--不建议用ThreadGroup,因为它的方法不是线程安全的。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/BrokenNullCheck"/>
  <!--应该用&&取代||或反之。(FindBugs检查)-->
  <rule ref="rulesets/basic.xml/BigIntegerInstantiation"/>
  <!--不要再创建已经有的对象(BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.TEN)。(FindBugs不检查)-->
  <!--rule ref="rulesets/basic.xml/AvoidUsingOctalValues"/-->
  <!--避免使用八进制值。(FindBugs不检查)-->
  <!--
  <rule ref="rulesets/basic.xml/AvoidUsingHardCodedIP">
    <properties>
        <property name="pattern" value=""/>
    </properties>
  </rule>
  -->
  <!--避免硬编码IPv4和IPv6,以免在某些情况下变的不可能布署。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/CheckResultSet"/>
  <!--对ResultSet的方法(next,previous,first,last)调用结果要进行是否是真的判断。(FindBugs不检查)-->
  <rule ref="rulesets/basic.xml/AvoidMultipleUnaryOperators"/>
  <!--避免多个一元操作符,要么是一个错误,要么易引起混淆。(FindBugs不检查)-->
  <!--====================Basic Rules end======================-->


  <!--====================braces Rules begin(共4个)======================-->
  <rule ref="rulesets/braces.xml/IfStmtsMustUseBraces"/>
  <rule ref="rulesets/braces.xml/WhileLoopsMustUseBraces"/>
  <rule ref="rulesets/braces.xml/IfElseStmtsMustUseBraces"/>
  <rule ref="rulesets/braces.xml/ForLoopsMustUseBraces"/>
  <!--====================braces Rules end======================-->


  <!--====================clone Rules begin(共3个)======================-->
  <rule ref="rulesets/clone.xml/ProperCloneImplementation"/>
  <rule ref="rulesets/clone.xml/CloneThrowsCloneNotSupportedException"/>
  <rule ref="rulesets/clone.xml/CloneMethodMustImplementCloneable"/>
  <!--====================clone Rules end======================-->

 
  <!--====================codesize Rules begin(共11个)======================-->
  <!--
  <rule ref="rulesets/codesize.xml/NPathComplexity">
      <properties>
         <property name="minimum" value="200"/>
      </properties>
  </rule>
  -->
  <!--
  <rule ref="rulesets/codesize.xml/ExcessiveMethodLength">
      <properties>
         <property name="minimum" value="100"/>
      </properties>
  </rule>
  -->
  <rule ref="rulesets/codesize.xml/ExcessiveParameterList">
      <properties>
         <property name="minimum" value="6"/>
      </properties>
  </rule>
  <!--
  <rule ref="rulesets/codesize.xml/ExcessiveClassLength">
      <properties>
         <property name="minimum" value="1000"/>
      </properties>
  </rule>
  -->
  <!--
  <rule ref="rulesets/codesize.xml/CyclomaticComplexity">
      <properties>
         <property name="reportLevel" value="10"/>
         property name="showClassesComplexity" value="true"/>
         property name="showMethodsComplexity" value="true"/>
      </properties>
  </rule>
  -->
  <!--
  <rule ref="rulesets/codesize.xml/ExcessivePublicCount">
      <properties>
         <property name="minimum" value="45"/>
      </properties>
  </rule>
  -->
  <!--
  <rule ref="rulesets/codesize.xml/TooManyFields">
      <properties>
         <property name="maxfields" value="15"/>
      </properties>
  </rule>
  -->
  <!--
  <rule ref="rulesets/codesize.xml/NcssMethodCount">
      <properties>
         <property name="minimum" value="100"/>
      </properties>
  </rule>
   -->
   <!--
  <rule ref="rulesets/codesize.xml/NcssTypeCount">
      <properties>
         <property name="minimum" value="1500"/>
      </properties>
  </rule>
  -->
  <!--
  <rule ref="rulesets/codesize.xml/NcssConstructorCount">
      <properties>
         <property name="minimum" value="100"/>
      </properties>
  </rule>
   -->
   <!--
  <rule ref="rulesets/codesize.xml/TooManyMethods">
      <properties>
         <property name="maxmethods" value="20"/>
      </properties>
  </rule>
  -->
  <!--====================codesize Rules end======================-->

 
  <!--====================controversial Rules begin(共19个)======================-->
  <rule ref="rulesets/controversial.xml/UnnecessaryConstructor"/>
  <!--rule ref="rulesets/controversial.xml/NullAssignment"/-->
  <!--rule ref="rulesets/controversial.xml/OnlyOneReturn"/-->
  <!--rule ref="rulesets/controversial.xml/UnusedModifier"/-->
  <!--rule ref="rulesets/controversial.xml/AssignmentInOperand"/-->
  <!--rule ref="rulesets/controversial.xml/AtLeastOneConstructor"/-->
  <rule ref="rulesets/controversial.xml/DontImportSun"/>
  <!--rule ref="rulesets/controversial.xml/SuspiciousOctalEscape"/-->
  <!--rule ref="rulesets/controversial.xml/CallSuperInConstructor"/-->
  <!--rule ref="rulesets/controversial.xml/UnnecessaryParentheses"/-->
  <!--rule ref="rulesets/controversial.xml/DefaultPackage"/-->
  <!--rule ref="rulesets/controversial.xml/BooleanInversion"/-->
  <!--
  <rule ref="rulesets/controversial.xml/DataflowAnomalyAnalysis">
        <properties>
         <property name="maxviolations" value="100"/>
         <property name="maxpaths" value="1000"/>
      </properties>
  </rule>
  -->
  <!--rule ref="rulesets/controversial.xml/AvoidFinalLocalVariable"/-->
  <!--rule ref="rulesets/controversial.xml/AvoidUsingShortType"/-->
  <!--rule ref="rulesets/controversial.xml/AvoidUsingVolatile"/-->
  <!--rule ref="rulesets/controversial.xml/AvoidUsingNativeCode"/-->
  <rule ref="rulesets/controversial.xml/AvoidAccessibilityAlteration"/>
  <rule ref="rulesets/controversial.xml/DoNotCallGarbageCollectionExplicitly"/>
  <!--====================controversial Rules end======================--> 


   <!--====================coupling Rules begin(共3个)======================-->
   <!--
  <rule ref="rulesets/coupling.xml/CouplingBetweenObjects">
      <properties>
         <property name="threshold" value="20"/>
      </properties>
  </rule>
  -->
  <!--
  <rule ref="rulesets/coupling.xml/ExcessiveImports">
      <properties>
         <property name="minimum" value="30"/>
      </properties>
  </rule>
  -->
  <rule ref="rulesets/coupling.xml/LooseCoupling"/>
  <!--====================coupling Rules end======================-->


  <!--====================Design Rules begin(共48个)======================-->
  <rule ref="rulesets/design.xml/UseSingleton"/>
  <!--如果成员方法都是static,建议使用Singletom模式,或定义成abstract类。(FindBugs不检查)-->
  <rule ref="rulesets/design.xml/SimplifyBooleanReturns"/>
  <!--避免以下代码
        if (bar == x) {
        return true;
        } else {
        return false;
        }(FindBugs不检查)
-->
  <rule ref="rulesets/design.xml/SimplifyBooleanExpressions"/>
  <!--避免以下代码
        boolean bar = (isFoo() == true);(FindBugs不检查)
  -->
  <rule ref="rulesets/design.xml/SwitchStmtsShouldHaveDefault"/>
  <!--switch语句应该有一个default。(FindBugs不检查)-->
  <rule ref="rulesets/design.xml/AvoidDeeplyNestedIfStmts">
    <properties>
        <property name="problemDepth" value="5"/>
    </properties>
  </rule>
  <!--避免较深的if语句,注意:有else的不算。(FindBugs不检查)-->
  <!--
  <rule ref="rulesets/design.xml/AvoidReassigningParameters"/>
  -->
  <!--避免方法参数未使用就被赋值。(FindBugs检查)-->
  <!--不用
  <rule ref="rulesets/design.xml/SwitchDensity">
    <properties>
        <property name="minimum" value="10"/>
    </properties>
  </rule>
  -->
  <!--label下的语句太多,建议优化重构。(FindBugs不检查)-->
  <!--rule ref="rulesets/design.xml/ConstructorCallsOverridableMethod"/-->
  <!-- 在构造方法中调用了可能会被覆盖的成员方法,后果:可能会有空指针错误。(FindBugs不检查) -->
  <rule ref="rulesets/design.xml/AccessorClassGeneration"/>
  <!-- 避免以下代码,私有构造方法类在类定义外生成实例,这会导致the generation of an accessor。(FindBugs不检查)
        public class Outer {
         void method(){
          Inner ic = new Inner();//Causes generation of accessor class
         }
         public class Inner {
          private Inner(){}
         }
        }
   -->
   <rule ref="rulesets/design.xml/FinalFieldCouldBeStatic"/>
   <!-- final成员变量(field,类字段)建议定义成static,这样可以节省空间 。(FindBugs不检查)-->
   <!--rule ref="rulesets/design.xml/CloseResource"/-->
   <!-- Connection,Statement,ResultSet对象使用后要close。(FindBugs不检查) -->
   <!--rule ref="rulesets/design.xml/NonStaticInitializer"/-->
   <!-- 不建议使用非静态初始化块 ,易引起混乱。(FindBugs不检查)-->
   <rule ref="rulesets/design.xml/DefaultLabelNotLastInSwitchStmt"/>
   <!-- switch中的default应放在最后一个。(FindBugs不检查)-->
   <rule ref="rulesets/design.xml/NonCaseLabelInSwitchStatement"/>
   <!-- switch中有非case的label。(FindBugs不检查)-->
   <!--rule ref="rulesets/design.xml/OptimizableToArrayCall"/-->
   <!-- Collection.toArray(T[] a)调用中new a数组时要指定数组长度。(FindBugs检查)-->
   <rule ref="rulesets/design.xml/BadComparison"/>
   <!-- 避免与Double.NaN进行是否相等比较(==)。(FindBugs检查)-->
   <rule ref="rulesets/design.xml/EqualsNull"/>
   <!-- 避免与null比较,如x.equals(null) (FindBugs不检查)-->
   <!--
   <rule ref="rulesets/design.xml/ConfusingTernary"/>
   -->
   <!-- 避免if(x!=y),要先if(x==y) (FindBugs不检查)-->
   <rule ref="rulesets/design.xml/InstantiationToGetClass"/>
   <!-- 为了获得Class对象,请用类的class成员,而不要实例化对象然后getClass (FindBugs检查)-->
   <!--rule ref="rulesets/design.xml/IdempotentOperations"/-->
   <!-- 避免幂等操作,如变量赋值给它自己 (FindBugs检查)-->
   <!--rule ref="rulesets/design.xml/SimpleDateFormatNeedsLocale"/-->
   <!-- 生成SimpleDateFormat实例的时候要求指定Locale(FindBugs不检查) -->
   <!--rule ref="rulesets/design.xml/ImmutableField"/-->
   <!-- field在变量定义时或构造方法中赋值后就再也没有改变过,则可以定义成final的。(FindBugs不检查) -->
   <!--rule ref="rulesets/design.xml/UseLocaleWithCaseConversions"/-->
   <!-- 在进行大小字转换(String.toLowerCase()/toUpperCase() )的时候请使用Locale,可以避免某些Locale带来的问题(FindBugs检查)-->
   <!--rule ref="rulesets/design.xml/AvoidProtectedFieldInFinalClass"/-->
   <!-- final类不要出现protected字段(FindBugs检查)-->
   <!--rule ref="rulesets/design.xml/AssignmentToNonFinalStatic"/-->
   <!-- 赋值给静态非final变量,可能会不安全。在静态区赋值或定义时赋值则没问题。(FindBugs检查)-->
   <rule ref="rulesets/design.xml/MissingStaticMethodInNonInstantiatableClass"/>
   <!-- 在不能实例化的类里(定义了私有构造方法的类)没有静态方法,这样这个类不可用。(FindBugs不检查)-->
   <!--rule ref="rulesets/design.xml/AvoidSynchronizedAtMethodLevel"/-->
   <!-- 用块级别的同步代替方法级的同步,这样能够保证让真正需要的代码同步(FindBugs不检查)-->
   <!--rule ref="rulesets/design.xml/MissingBreakInSwitch"/-->
   <!-- case没有break(FindBugs检查)-->
   <rule ref="rulesets/design.xml/UseNotifyAllInsteadOfNotify"/>
   <!-- 用notifyAll取代notify(FindBugs检查)-->
   <rule ref="rulesets/design.xml/AvoidInstanceofChecksInCatchClause"/>
   <!-- 避免在catch子句里再判断具体的异常类型,就是用instanceof。(FindBugs不检查)-->
   <!--rule ref="rulesets/design.xml/AbstractClassWithoutAbstractMethod"/-->
   <!-- 抽象类没有定义任何抽象方法,如果类仅希望作为基类使用,但又不需要抽象方法,则建议提供一个protected构造方法。(FindBugs不检查)-->
   <!--rule ref="rulesets/design.xml/SimplifyConditional"/-->
   <!-- 条件表达式中没有必要在instanceof之前进行空指针判断。(FindBugs不检查)-->
   <!--rule ref="rulesets/design.xml/CompareObjectsWithEquals"/-->
   <!-- 建议用equals对象,而不是用==.(FindBugs检查)-->
   <!--rule ref="rulesets/design.xml/PositionLiteralsFirstInComparisons"/-->
   <!-- 字符串变量与常量比较时,先写常量,这样可以避免空指针异常。(FindBugs不检查)-->
   <!--rule ref="rulesets/design.xml/UnnecessaryLocalBeforeReturn"/-->
   <!-- 避免不必要的本地变量。(FindBugs不检查)-->
   <!--
   <rule ref="rulesets/design.xml/NonThreadSafeSingleton">
      <properties>
         <property name="checkNonStaticMethods" value="true"/>
         <property name="checkNonStaticFields" value="true"/>
      </properties>
   </rule>
   -->
   <!-- 线程不安全的Singleton。(FindBugs不检查)-->
   <!--rule ref="rulesets/design.xml/UncommentedEmptyMethod"/-->
   <!-- 未加注释的空方法,在方法的花括弧之间未加注释。(FindBugs不检查)-->
   <!--
   <rule ref="rulesets/design.xml/UncommentedEmptyConstructor">
       <properties>
         <property name="ignoreExplicitConstructorInvocation" value="true"/>
      </properties>
   </rule>
   -->
   <!-- 未加注释的空构造方法,在方法的花括弧之间未加注释。注意,在super或this前的注释不算。(FindBugs不检查)-->
   <!--rule ref="rulesets/design.xml/AvoidConstantsInterface"/-->
   <!-- 避免只有常量的接口定义,可以考虑将其转换成类。(FindBugs不检查)-->
   <!--rule ref="rulesets/design.xml/UnsynchronizedStaticDateFormatter"/-->
   <!-- 静态SimpleDateFormat成员变量访问未加同步。(FindBugs检查,另外FindBugs不建议定义静态SimpleDateFormat成员变量)-->
   <rule ref="rulesets/design.xml/PreserveStackTrace"/>
   <!-- catch到了异常后又重新throw新的异常,未保留源异常,源异常的stack trace可能会丢失,不利于程序调试。(FindBugs不检查)-->
   <rule ref="rulesets/design.xml/UseCollectionIsEmpty"/>
   <!-- 对Collection对象,建议用isEmpty()取代size()与0的判断。(FindBugs不检查)-->
   <rule ref="rulesets/design.xml/ClassWithOnlyPrivateConstructorsShouldBeFinal"/>
   <!-- 只有私有构造方法的类应该申明为final的,除非构造方法被内部类调用。注,私有构造方法的类能够被它的内部类使用。(FindBugs不检查)-->
   <!--
   <rule ref="rulesets/design.xml/EmptyMethodInAbstractClassShouldBeAbstract"/>
   -->
   <!-- 抽象类里的空方法应该定义成abstract。(FindBugs不检查)-->
   <!--
   <rule ref="rulesets/design.xml/SingularField">
      <properties>
         <property name="CheckInnerClasses" value="true"/>
         <property name="DisallowNotAssignment" value="true"/>
      </properties>
   </rule>
   -->
   <!-- 某个类字段仅在一个方法中使用,建议改用本地变量。构造方法中有赋值不算,但定义时有初始值算。(FindBugs不检查)-->
   <rule ref="rulesets/design.xml/ReturnEmptyArrayRatherThanNull"/>
   <!-- 返回空数组,而不是null。(FindBugs检查)-->
   <!--rule ref="rulesets/design.xml/AbstractClassWithoutAnyMethod"/-->
   <!-- 如果一个抽象类不包含任何方法,只有数据字段,则建议定义private或protected的构造方法以不允许实例化。(FindBugs不检查)-->
   <rule ref="rulesets/design.xml/TooFewBranchesForASwitchStatement"/>
      <!--
      <properties>
         <property name="minimumNumberCaseForASwitch" value="3"/>
      </properties>
      -->
   <!-- switch的case语句如果太少的话建议用if取代,以增加代码可读性。(FindBugs不检查)-->
  <!--====================Design Rules end======================-->


  <!--====================finalizers Rules begin(共6个)======================-->
  <rule ref="rulesets/finalizers.xml/EmptyFinalizer"/>
  <rule ref="rulesets/finalizers.xml/FinalizeOnlyCallsSuperFinalize"/>
  <rule ref="rulesets/finalizers.xml/FinalizeOverloaded"/>
  <rule ref="rulesets/finalizers.xml/FinalizeDoesNotCallSuperFinalize"/>
  <!--rule ref="rulesets/finalizers.xml/FinalizeShouldBeProtected"/-->
  <rule ref="rulesets/finalizers.xml/AvoidCallingFinalize"/>
  <!--====================finalizers Rules end======================-->


  <!--====================imports Rules begin(共5个)======================-->
  <rule ref="rulesets/imports.xml/DuplicateImports"/>
  <rule ref="rulesets/imports.xml/DontImportJavaLang"/>
  <rule ref="rulesets/imports.xml/UnusedImports"/>
  <rule ref="rulesets/imports.xml/ImportFromSamePackage"/>
  <!--
  <rule ref="rulesets/imports.xml/TooManyStaticImports">
      <properties>
         <property name="maximumStaticImports" value="4"/>
      </properties>
  </rule>
  -->
  <!--====================imports Rules end======================-->


  <!--====================j2ee Rules begin(共9个)======================-->
  <!--rule ref="rulesets/j2ee.xml/UseProperClassLoader"/-->
  <!--rule ref="rulesets/j2ee.xml/MDBAndSessionBeanNamingConvention"/-->
  <!--rule ref="rulesets/j2ee.xml/RemoteSessionInterfaceNamingConvention"/-->
  <!--rule ref="rulesets/j2ee.xml/LocalInterfaceSessionNamingConvention"/-->
  <!--rule ref="rulesets/j2ee.xml/LocalHomeNamingConvention"/-->
  <!--rule ref="rulesets/j2ee.xml/RemoteInterfaceNamingConvention"/-->
  <!--rule ref="rulesets/j2ee.xml/DoNotCallSystemExit"/-->
  <!--rule ref="rulesets/j2ee.xml/StaticEJBFieldShouldBeFinal"/-->
  <!--rule ref="rulesets/j2ee.xml/DoNotUseThreads"/-->
  <!--====================j2ee Rules end======================-->


  <!--====================logging-jakarta-commons Rules begin(共2个)======================-->
  <!--rule ref="rulesets/logging-jakarta-commons.xml/UseCorrectExceptionLogging"/-->
  <!--
  <rule ref="rulesets/logging-jakarta-commons.xml/ProperLogger">
      <properties>
         <property name="staticLoggerName" value="log"/>
      </properties>
  </rule>
  -->
  <!--====================logging-jakarta-commons Rules end======================-->


  <!--====================logging-java Rules begin(共4个)======================-->
  <rule ref="rulesets/logging-java.xml/MoreThanOneLogger"/>
  <!--rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/-->
  <rule ref="rulesets/logging-java.xml/SystemPrintln"/>
  <rule ref="rulesets/logging-java.xml/AvoidPrintStackTrace"/>
  <!--====================logging-java Rules end======================-->


  <!--====================naming Rules begin(共18个)======================-->
  <!--rule ref="rulesets/naming.xml/ShortVariable"/-->
  <!--
  <rule ref="rulesets/naming.xml/LongVariable">
      <properties>
         <property name="minimum" value="40"/>
      </properties>
  </rule>
  -->
  <rule ref="rulesets/naming.xml/ShortMethodName"/>
  <rule ref="rulesets/naming.xml/VariableNamingConventions"/>
  <rule ref="rulesets/naming.xml/MethodNamingConventions"/>
  <rule ref="rulesets/naming.xml/ClassNamingConventions"/>
  <!--rule ref="rulesets/naming.xml/AbstractNaming"/-->
  <rule ref="rulesets/naming.xml/AvoidDollarSigns"/>
  <rule ref="rulesets/naming.xml/MethodWithSameNameAsEnclosingClass"/>
  <rule ref="rulesets/naming.xml/SuspiciousHashcodeMethodName"/>
  <rule ref="rulesets/naming.xml/SuspiciousConstantFieldName"/>
  <rule ref="rulesets/naming.xml/SuspiciousEqualsMethodName"/>
  <rule ref="rulesets/naming.xml/AvoidFieldNameMatchingTypeName"/>
  <rule ref="rulesets/naming.xml/AvoidFieldNameMatchingMethodName"/>
  <rule ref="rulesets/naming.xml/NoPackage"/>
  <rule ref="rulesets/naming.xml/PackageCase"/>
  <rule ref="rulesets/naming.xml/MisleadingVariableName"/>
  <rule ref="rulesets/naming.xml/BooleanGetMethodName">
      <properties>
         <property name="checkParameterizedMethods" value="false"/>
      </properties>
  </rule>
  <!--====================naming Rules end======================-->
 
 
  <!--====================optimization Rules begin(共10个)======================-->
  <!--rule ref="rulesets/optimizations.xml/LocalVariableCouldBeFinal"/-->
  <!--rule ref="rulesets/optimizations.xml/MethodArgumentCouldBeFinal"/-->
  <!--rule ref="rulesets/optimizations.xml/AvoidInstantiatingObjectsInLoops"/-->
  <rule ref="rulesets/optimizations.xml/UseArrayListInsteadOfVector"/>
  <!--rule ref="rulesets/optimizations.xml/SimplifyStartsWith"/-->
  <!--rule ref="rulesets/optimizations.xml/UseStringBufferForStringAppends"/-->
  <rule ref="rulesets/optimizations.xml/UseArraysAsList"/>
  <rule ref="rulesets/optimizations.xml/AvoidArrayLoops"/>
  <rule ref="rulesets/optimizations.xml/UnnecessaryWrapperObjectCreation"/>
  <!--rule ref="rulesets/optimizations.xml/AddEmptyString"/-->
  <!--====================optimization Rules end======================-->
 
 
  <!--====================strictexception Rules begin(共9个)======================-->
  <rule ref="rulesets/strictexception.xml/AvoidCatchingThrowable"/>
  <rule ref="rulesets/strictexception.xml/SignatureDeclareThrowsException"/>
  <rule ref="rulesets/strictexception.xml/ExceptionAsFlowControl"/>
  <rule ref="rulesets/strictexception.xml/AvoidCatchingNPE"/>
  <rule ref="rulesets/strictexception.xml/AvoidThrowingRawExceptionTypes"/>
  <!--rule ref="rulesets/strictexception.xml/AvoidThrowingNullPointerException"/-->
  <rule ref="rulesets/strictexception.xml/AvoidRethrowingException"/>
  <rule ref="rulesets/strictexception.xml/DoNotExtendJavaLangError"/>
  <rule ref="rulesets/strictexception.xml/DoNotThrowExceptionInFinally"/>
  <!--====================strictexception Rules end======================-->


  <!--====================sunsecure Rules begin(共2个)======================-->
  <!--rule ref="rulesets/sunsecure.xml/MethodReturnsInternalArray"/-->
  <!--rule ref="rulesets/sunsecure.xml/ArrayIsStoredDirectly"/-->
  <!--====================sunsecure Rules end======================-->


  <!--====================strings Rules begin(共15个)======================-->
  <!--
  <rule ref="rulesets/strings.xml/AvoidDuplicateLiterals">
      <properties>
         <property name="threshold" value="4"/>
      </properties>
  </rule>
  -->
  <rule ref="rulesets/strings.xml/StringInstantiation"/>
  <rule ref="rulesets/strings.xml/StringToString"/>
  <!--rule ref="rulesets/strings.xml/InefficientStringBuffering"/-->
  <rule ref="rulesets/strings.xml/UnnecessaryCaseChange"/>
  <rule ref="rulesets/strings.xml/UseStringBufferLength"/>
  <rule ref="rulesets/strings.xml/AppendCharacterWithChar"/>
  <!--
  <rule ref="rulesets/strings.xml/ConsecutiveLiteralAppends">
      <properties>
         <property name="threshold" value="1"/>
      </properties>
  </rule>
  -->
  <!--rule ref="rulesets/strings.xml/UseIndexOfChar"/-->
  <!--rule ref="rulesets/strings.xml/InefficientEmptyStringCheck"/-->
  <!--rule ref="rulesets/strings.xml/InsufficientStringBufferDeclaration"/-->
  <rule ref="rulesets/strings.xml/UselessStringValueOf"/>
  <rule ref="rulesets/strings.xml/StringBufferInstantiationWithChar"/>
  <rule ref="rulesets/strings.xml/UseEqualsToCompareStrings"/>
  <!--rule ref="rulesets/strings.xml/AvoidStringBufferField"/-->
  <!--====================strings Rules end======================-->


  <!--====================unusedcode Rules begin(共4个)======================-->
  <rule ref="rulesets/unusedcode.xml/UnusedPrivateField"/>
  <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable"/>
  <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod"/>
  <rule ref="rulesets/unusedcode.xml/UnusedFormalParameter"/>
  <!--====================unusedcode Rules end======================-->


</ruleset>

分享到:
评论

相关推荐

    eclipse导入模板.

    安装说明 1、importorder.xml文件 ,包的导入顺序 打开eclipse中菜单...5、pmd.xml文件,check style规则模板 打开eclipse中菜单"windows"--&gt;Preferences。 选择“PMD”--&gt;"Rules Configuration" ,然后导入。

    net.sourceforge.pmd.eclipse.p2updatesite-4.5.0.v20190630-0922.zip

    `content.xml.xz`和`artifacts.xml.xz`是经过XZ压缩的XML文件,分别对应于`content.jar`和`artifacts.jar`的元数据内容。它们提供了更高效的存储方式,便于在网络传输或离线安装时减小文件体积。 `features`目录下...

    PMD_ruleset规则配置文件

    PMD_ruleset规则文件,已经最基本的验证进行了导入。在Eclipse导入即可

    PMD的规则文件

    在XML文件中,规则集以`&lt;ruleset&gt;`标签表示,包含多个规则定义。 2. **规则(Rule)** 每个规则代表一个特定的检查,如“避免使用空的finally块”或“避免过多的import”。规则以`&lt;rule&gt;`标签表示,包括ID、名称、...

    pmd-bin-4.2.1.zip

    3. **定制规则**:如果你需要自定义规则,可以修改或创建XML配置文件(通常为`pmd.xml`)。配置文件中定义了要启用的规则和它们的参数。 4. **查看报告**:PMD会生成一个XML、HTML或文本格式的报告,显示有问题的...

    Maven -史上 最全POM.xml模板

    最全maven pom文件 功能包括 1.整合 scm(git) 、ci(hudson)、issus(trac) 2.依赖部分根据自己添加 3.build 部分,自定义目录功能 4.report整合包括:javadoc、jxr、checkstyle、pmd、changelog、emma、...

    IDEA 统一格式化插件配置

    本文将详细介绍如何使用"Eclipse_CodeFormatter.xml"文件在IDEA和Eclipse中实现代码格式化的统一。 首先,"Eclipse_CodeFormatter.xml"是一个Eclipse的代码格式化配置文件,它存储了关于代码缩进、空格、括号放置、...

    pmd-bin-6.28.0.zip

    PMD的规则集可以通过XML配置文件进行定制,允许用户根据项目需求选择和调整规则。 PMD的标签“pmd-java”表明这是专门针对Java语言的版本。除了Java,PMD还支持其他语言,如C#、Python和PL/SQL等,但在这个特定的...

    用PMD铲除bug

    2. **创建自定义规则文件**:根据需要创建新的XML文件,定义具体的规则。 3. **整合到PMD中**:将自定义规则文件与PMD命令一起使用,以实现对特定问题的检查。 #### 七、结束语 通过使用PMD这样的静态代码分析工具...

    Coding Standard

    本文将深入探讨Java编程规范,并结合提供的资源,如`Java Coding Standard.doc`,以及配置文件`iisi-Formatter.xml`、`iisi-PMD.xml`和`iisi-Checkstyle.xml`,来阐述如何提升Java代码的可读性、可维护性和一致性。...

    PMD检查工具4.0

    5. `plugin.xml`:这可能是一个描述PMD插件配置的XML文件,用于IDE识别和集成PMD。 在实际使用PMD时,了解和调整这些资源可以帮助你更好地定制和优化PMD的检查效果。例如,你可以通过修改`plugin.xml`来改变PMD在...

    pmd-bin-5.5.2.zip

    1. **bin** 目录:这是PMD的可执行文件所在的目录,包含了用于运行PMD的命令行脚本,如`pmd.sh`(适用于Linux/Unix系统)和`pmd.bat`(适用于Windows系统)。这些脚本使得开发者可以在终端或命令行环境中轻松启动PMD...

    pmd插件使用文档

    - 在 Maven 项目的 `pom.xml` 文件中,您需要在 `&lt;build&gt;` 和 `&lt;reporting&gt;` 部分分别配置 PMD 插件。在 `&lt;build&gt;` 部分的配置用于构建过程中的代码检查,而在 `&lt;reporting&gt;` 部分的配置则用于生成报告。 ```xml...

    pmd-bin-6.9.0.zip

    这需要编写XML文件来定义新规则,并将其添加到PMD的规则集中。 9. **性能优化**:PMD在分析大量代码时,可能会对性能产生影响。因此,了解如何合理配置PMD,如设置适当的内存大小,或者使用过滤器减少分析范围,都...

    静态代码检测

    PMD的规则集可以通过`pmd.xml`文件进行定制,同样可以集成到构建工具和IDE中,以便在开发过程中进行实时检查。 再者,FindBugs是一款专门针对Java代码的静态分析工具,它能够检测出代码中可能导致错误的模式,如空...

    在eclipse中修改checkstyle和pmd规则集的方法

    - 导入新的PMD规则集XML文件(如newRules/pmd.xml)。 - 自定义规则集,选择你希望启用或禁用的规则,然后点击`Apply`和`OK`。 4. **应用规则集** - 对于Checkstyle,你可以右键点击项目 -&gt; `Checkstyle` -&gt; `...

    配置Eclipse中PMD插件

    allLevel 的规则文件只分两级(PMD 默认为 5级),可以点击视图右上角中的 1 或者 2 查看不同级别的 voilations。 通过配置和使用 PMD 插件,开发者可以检测到 Java 代码中的错误和不良编程实践,从而提高代码的...

    ant打包及整合质量控制插件

    这里,`pmd_rules.xml`和`checkstyle.xml`分别是PMD和Checkstyle的自定义规则文件,它们定义了我们要遵循的编码规范。 最后,为了在持续集成环境中运行这些任务,`ci_build.xml`可能会这样组织: ```xml , ...

    pmd-bin-6.54.0.zip

    在bin目录下,有两个主要的脚本文件,分别对应于Windows和Unix/Linux系统:`pmd.bat` 和 `pmd.sh`。通过运行这些脚本,你可以指定待检查的源代码目录、配置文件以及想要执行的规则集。 规则集是PMD的核心部分,它...

    PMD的使用说明-简介、工作原理、安装运行、规则等

    需要在build.xml文件中配置PMD的规则集和要分析的目标源代码路径。 5. 关于 PMD 规则 PMD的规则分为多个类别,如Design、Error Prone、Performance、Maintainability和Best Practices。每个规则都有一个独特的ID,...

Global site tag (gtag.js) - Google Analytics