Jenkins+PMD构建自动化静态代码检测

发表于:2013-7-29 11:00

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:hunterno4    来源:51Testing软件测试网采编

  本文中定义了两个target,分别生成了XML和HTML格式的报告,因为在Jenkins中的分析插件需要用XML格式才能生成视图报告,而XML格式对于团队来说不直观,不宜发送邮件,因此生成两份报告,一份用于Jenkins分析,一份发送邮件用于团队成员直接查看

  编写好buildPMD.xml,直接使用ant -f buildPMD.xml即可在CMD命令或Linux shell下执行PMD静态代码检测

  在Jenkins中新建个任务,Build项Add build step中选择“Execute Shell”,输入ant -f buildPMD.xml即可

  附:pmdrule.xml

<?xml version="1.0" encoding="UTF-8"?>
<ruleset xmlns="http://pmd.sourceforge.net/ruleset/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="pmdrule" xsi:schemalocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
   <description>PMD Plugin preferences rule set</description>
   <rule ref="rulesets/java/design.xml/AbstractClassWithoutAbstractMethod">
   <rule ref="rulesets/java/design.xml/AbstractClassWithoutAnyMethod">
   <rule ref="rulesets/java/naming.xml/AbstractNaming">
   <rule ref="rulesets/java/design.xml/AccessorClassGeneration">
   <rule ref="rulesets/java/optimizations.xml/AddEmptyString">
   <rule ref="rulesets/java/strings.xml/AppendCharacterWithChar">
   <rule ref="rulesets/java/sunsecure.xml/ArrayIsStoredDirectly">
   <rule ref="rulesets/ecmascript/basic.xml/AssignmentInOperand">
   <rule ref="rulesets/java/controversial.xml/AssignmentInOperand">
   <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic">
   <rule ref="rulesets/java/controversial.xml/AtLeastOneConstructor">
   <rule ref="rulesets/java/controversial.xml/AvoidAccessibilityAlteration">
   <rule ref="rulesets/java/optimizations.xml/AvoidArrayLoops">
   <rule ref="rulesets/java/migrating.xml/AvoidAssertAsIdentifier">
   <rule ref="rulesets/xsl/xpath.xml/AvoidAxisNavigation">
   <rule ref="rulesets/java/basic.xml/AvoidBranchingStatementAsLastInLoop">
   <rule ref="rulesets/java/finalizers.xml/AvoidCallingFinalize">
   <rule ref="rulesets/java/strictexception.xml/AvoidCatchingGenericException">
   <rule ref="rulesets/java/strictexception.xml/AvoidCatchingNPE">
   <rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable">
   <rule ref="rulesets/java/design.xml/AvoidConstantsInterface">
   <rule ref="rulesets/java/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor">
   <rule ref="rulesets/java/design.xml/AvoidDeeplyNestedIfStmts">
   <rule ref="rulesets/java/naming.xml/AvoidDollarSigns">
   <rule ref="rulesets/java/strings.xml/AvoidDuplicateLiterals">
   <rule ref="rulesets/java/migrating.xml/AvoidEnumAsIdentifier">
   <rule ref="rulesets/java/naming.xml/AvoidFieldNameMatchingMethodName">
   <rule ref="rulesets/java/naming.xml/AvoidFieldNameMatchingTypeName">
   <rule ref="rulesets/java/controversial.xml/AvoidFinalLocalVariable">
   <rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause">
   <rule ref="rulesets/java/optimizations.xml/AvoidInstantiatingObjectsInLoops">
   <rule ref="rulesets/java/controversial.xml/AvoidLiteralsInIfCondition">
   <rule ref="rulesets/java/strictexception.xml/AvoidLosingExceptionInformation">
   <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators">
   <rule ref="rulesets/java/controversial.xml/AvoidPrefixingMethodParameters">
   <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace">
   <rule ref="rulesets/java/design.xml/AvoidProtectedFieldInFinalClass">
   <rule ref="rulesets/java/design.xml/AvoidReassigningParameters">
   <rule ref="rulesets/java/strictexception.xml/AvoidRethrowingException">
   <rule ref="rulesets/java/strings.xml/AvoidStringBufferField">
   <rule ref="rulesets/java/design.xml/AvoidSynchronizedAtMethodLevel">
   <rule ref="rulesets/java/basic.xml/AvoidThreadGroup">
   <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNewInstanceOfSameException">
   <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNullPointerException">
   <rule ref="rulesets/java/strictexception.xml/AvoidThrowingRawExceptionTypes">
   <rule ref="rulesets/ecmascript/basic.xml/AvoidTrailingComma">
   <rule ref="rulesets/java/basic.xml/AvoidUsingHardCodedIP">
   <rule ref="rulesets/java/controversial.xml/AvoidUsingNativeCode">
   <rule ref="rulesets/java/basic.xml/AvoidUsingOctalValues">
   <rule ref="rulesets/java/controversial.xml/AvoidUsingShortType">
   <rule ref="rulesets/java/controversial.xml/AvoidUsingVolatile">
   <rule ref="rulesets/java/design.xml/BadComparison">
   <rule ref="rulesets/java/javabeans.xml/BeanMembersShouldSerialize">
   <rule ref="rulesets/java/basic.xml/BigIntegerInstantiation">
   <rule ref="rulesets/java/naming.xml/BooleanGetMethodName">
   <rule ref="rulesets/java/basic.xml/BooleanInstantiation">
   <rule ref="rulesets/java/controversial.xml/BooleanInversion">
   <rule ref="rulesets/java/basic.xml/BrokenNullCheck">
   <rule ref="rulesets/java/migrating.xml/ByteInstantiation">
   <rule ref="rulesets/java/android.xml/CallSuperFirst">
   <rule ref="rulesets/java/controversial.xml/CallSuperInConstructor">
   <rule ref="rulesets/java/android.xml/CallSuperLast">
   <rule ref="rulesets/java/basic.xml/CheckResultSet">
   <rule ref="rulesets/java/basic.xml/CheckSkipResult">
   <rule ref="rulesets/java/basic.xml/ClassCastExceptionWithToArray">
   <rule ref="rulesets/java/naming.xml/ClassNamingConventions">
   <rule ref="rulesets/java/design.xml/ClassWithOnlyPrivateConstructorsShouldBeFinal">
   <rule ref="rulesets/java/clone.xml/CloneMethodMustImplementCloneable">
   <rule ref="rulesets/java/clone.xml/CloneThrowsCloneNotSupportedException">
   <rule ref="rulesets/java/design.xml/CloseResource">
   <rule ref="rulesets/java/basic.xml/CollapsibleIfStatements">
   <rule ref="rulesets/java/comments.xml/CommentContent">
   <rule ref="rulesets/java/comments.xml/CommentRequired">
   <rule ref="rulesets/java/comments.xml/CommentSize">
   <rule ref="rulesets/java/design.xml/CompareObjectsWithEquals">
   <rule ref="rulesets/java/design.xml/ConfusingTernary">
   <rule ref="rulesets/java/strings.xml/ConsecutiveLiteralAppends">
   <rule ref="rulesets/ecmascript/basic.xml/ConsistentReturn">
   <rule ref="rulesets/java/design.xml/ConstructorCallsOverridableMethod">
   <rule ref="rulesets/java/coupling.xml/CouplingBetweenObjects">
   <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity">
   <rule ref="rulesets/java/controversial.xml/DataflowAnomalyAnalysis">
   <rule ref="rulesets/java/design.xml/DefaultLabelNotLastInSwitchStmt">
   <rule ref="rulesets/java/controversial.xml/DefaultPackage">
   <rule ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly">
   <rule ref="rulesets/java/j2ee.xml/DoNotCallSystemExit">
   <rule ref="rulesets/java/strictexception.xml/DoNotExtendJavaLangError">
   <rule ref="rulesets/java/android.xml/DoNotHardCodeSDCard">
   <rule ref="rulesets/java/strictexception.xml/DoNotThrowExceptionInFinally">
   <rule ref="rulesets/java/j2ee.xml/DoNotUseThreads">
   <rule ref="rulesets/java/basic.xml/DontCallThreadRun">
   <rule ref="rulesets/java/imports.xml/DontImportJavaLang">
   <rule ref="rulesets/java/controversial.xml/DontImportSun">
   <rule ref="rulesets/jsp/basic-jsf.xml/DontNestJsfInJstlIteration">
   <rule ref="rulesets/java/basic.xml/DontUseFloatTypeForLoopIndices">
   <rule ref="rulesets/java/basic.xml/DoubleCheckedLocking">
   <rule ref="rulesets/java/imports.xml/DuplicateImports">
   <rule ref="rulesets/jsp/basic.xml/DuplicateJspImports">
   <rule ref="rulesets/java/basic.xml/EmptyCatchBlock">
   <rule ref="rulesets/java/empty.xml/EmptyCatchBlock">
   <rule ref="rulesets/java/finalizers.xml/EmptyFinalizer">
   <rule ref="rulesets/java/basic.xml/EmptyFinallyBlock">
   <rule ref="rulesets/java/empty.xml/EmptyFinallyBlock">
   <rule ref="rulesets/java/basic.xml/EmptyIfStmt">
   <rule ref="rulesets/java/empty.xml/EmptyIfStmt">
   <rule ref="rulesets/java/basic.xml/EmptyInitializer">
   <rule ref="rulesets/java/empty.xml/EmptyInitializer">
   <rule ref="rulesets/java/design.xml/EmptyMethodInAbstractClassShouldBeAbstract">
   <rule ref="rulesets/java/basic.xml/EmptyStatementBlock">
   <rule ref="rulesets/java/empty.xml/EmptyStatementBlock">
   <rule ref="rulesets/java/basic.xml/EmptyStatementNotInLoop">
   <rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop">
   <rule ref="rulesets/java/basic.xml/EmptyStaticInitializer">
   <rule ref="rulesets/java/empty.xml/EmptyStaticInitializer">
   <rule ref="rulesets/java/basic.xml/EmptySwitchStatements">
   <rule ref="rulesets/java/empty.xml/EmptySwitchStatements">
   <rule ref="rulesets/java/basic.xml/EmptySynchronizedBlock">
   <rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock">
   <rule ref="rulesets/java/basic.xml/EmptyTryBlock">
   <rule ref="rulesets/java/empty.xml/EmptyTryBlock">
   <rule ref="rulesets/java/basic.xml/EmptyWhileStmt">
   <rule ref="rulesets/java/empty.xml/EmptyWhileStmt">
   <rule ref="rulesets/ecmascript/basic.xml/EqualComparison">
   <rule ref="rulesets/java/design.xml/EqualsNull">
   <rule ref="rulesets/java/strictexception.xml/ExceptionAsFlowControl">
   <rule ref="rulesets/java/codesize.xml/ExcessiveClassLength">
   <rule ref="rulesets/java/coupling.xml/ExcessiveImports">
   <rule ref="rulesets/java/codesize.xml/ExcessiveMethodLength">
   <rule ref="rulesets/java/codesize.xml/ExcessiveParameterList">
   <rule ref="rulesets/java/codesize.xml/ExcessivePublicCount">
   <rule ref="rulesets/java/basic.xml/ExtendsObject">
   <rule ref="rulesets/java/design.xml/FieldDeclarationsShouldBeAtStartOfClass">
   <rule ref="rulesets/java/design.xml/FinalFieldCouldBeStatic">
   <rule ref="rulesets/java/finalizers.xml/FinalizeDoesNotCallSuperFinalize">
   <rule ref="rulesets/java/finalizers.xml/FinalizeOnlyCallsSuperFinalize">
   <rule ref="rulesets/java/finalizers.xml/FinalizeOverloaded">
   <rule ref="rulesets/java/finalizers.xml/FinalizeShouldBeProtected">
   <rule ref="rulesets/java/basic.xml/ForLoopShouldBeWhileLoop">
   <rule ref="rulesets/ecmascript/braces.xml/ForLoopsMustUseBraces">
   <rule ref="rulesets/java/braces.xml/ForLoopsMustUseBraces">
   <rule ref="rulesets/java/naming.xml/GenericsNaming">
   <rule ref="rulesets/ecmascript/basic.xml/GlobalVariable">
   <rule ref="rulesets/java/design.xml/GodClass">
   <rule ref="rulesets/java/logging-jakarta-commons.xml/GuardDebugLogging">
   <rule ref="rulesets/java/design.xml/IdempotentOperations">
   <rule ref="rulesets/ecmascript/braces.xml/IfElseStmtsMustUseBraces">
   <rule ref="rulesets/java/braces.xml/IfElseStmtsMustUseBraces">
   <rule ref="rulesets/ecmascript/braces.xml/IfStmtsMustUseBraces">
   <rule ref="rulesets/java/braces.xml/IfStmtsMustUseBraces">
   <rule ref="rulesets/jsp/basic.xml/IframeMissingSrcAttribute">
   <rule ref="rulesets/java/design.xml/ImmutableField">
   <rule ref="rulesets/java/imports.xml/ImportFromSamePackage">
   <rule ref="rulesets/java/strings.xml/InefficientEmptyStringCheck">
   <rule ref="rulesets/java/strings.xml/InefficientStringBuffering">
   <rule ref="rulesets/ecmascript/basic.xml/InnaccurateNumericLiteral">
   <rule ref="rulesets/java/design.xml/InstantiationToGetClass">
   <rule ref="rulesets/java/strings.xml/InsufficientStringBufferDeclaration">
   <rule ref="rulesets/java/migrating.xml/IntegerInstantiation">
   <rule ref="rulesets/java/migrating.xml/JUnit4SuitesShouldUseSuiteAnnotation">
   <rule ref="rulesets/java/migrating.xml/JUnit4TestShouldUseAfterAnnotation">
   <rule ref="rulesets/java/migrating.xml/JUnit4TestShouldUseBeforeAnnotation">
   <rule ref="rulesets/java/migrating.xml/JUnit4TestShouldUseTestAnnotation">
   <rule ref="rulesets/java/junit.xml/JUnitAssertionsShouldIncludeMessage">
   <rule ref="rulesets/java/junit.xml/JUnitSpelling">
   <rule ref="rulesets/java/junit.xml/JUnitStaticSuite">
   <rule ref="rulesets/java/junit.xml/JUnitTestContainsTooManyAsserts">
   <rule ref="rulesets/java/junit.xml/JUnitTestsShouldIncludeAssert">
   <rule ref="rulesets/java/migrating.xml/JUnitUseExpected">
   <rule ref="rulesets/jsp/basic.xml/JspEncoding">
   <rule ref="rulesets/java/basic.xml/JumbledIncrementer">
   <rule ref="rulesets/java/coupling.xml/LawOfDemeter">
   <rule ref="rulesets/java/j2ee.xml/LocalHomeNamingConvention">
   <rule ref="rulesets/java/j2ee.xml/LocalInterfaceSessionNamingConvention">
   <rule ref="rulesets/java/optimizations.xml/LocalVariableCouldBeFinal">
   <rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal">
   <rule ref="rulesets/java/design.xml/LogicInversion">
   <rule ref="rulesets/java/migrating.xml/LongInstantiation">
   <rule ref="rulesets/java/naming.xml/LongVariable">
   <rule ref="rulesets/java/coupling.xml/LooseCoupling">
   <rule ref="rulesets/java/coupling.xml/LoosePackageCoupling">
   <rule ref="rulesets/java/j2ee.xml/MDBAndSessionBeanNamingConvention">
   <rule ref="rulesets/java/optimizations.xml/MethodArgumentCouldBeFinal">
   <rule ref="rulesets/java/naming.xml/MethodNamingConventions">
   <rule ref="rulesets/java/sunsecure.xml/MethodReturnsInternalArray">
   <rule ref="rulesets/java/naming.xml/MethodWithSameNameAsEnclosingClass">
   <rule ref="rulesets/java/naming.xml/MisleadingVariableName">
   <rule ref="rulesets/java/basic.xml/MisplacedNullCheck">
   <rule ref="rulesets/java/design.xml/MissingBreakInSwitch">
   <rule ref="rulesets/java/javabeans.xml/MissingSerialVersionUID">
   <rule ref="rulesets/java/design.xml/MissingStaticMethodInNonInstantiatableClass">
   <rule ref="rulesets/xml/basic.xml/MistypedCDATASection">
   <rule ref="rulesets/java/logging-java.xml/MoreThanOneLogger">
   <rule ref="rulesets/java/codesize.xml/NPathComplexity">
   <rule ref="rulesets/java/codesize.xml/NcssConstructorCount">
   <rule ref="rulesets/java/codesize.xml/NcssMethodCount">
   <rule ref="rulesets/java/codesize.xml/NcssTypeCount">
   <rule ref="rulesets/jsp/basic.xml/NoClassAttribute">
   <rule ref="rulesets/jsp/basic.xml/NoHtmlComments">
   <rule ref="rulesets/jsp/basic.xml/NoInlineScript">
   <rule ref="rulesets/jsp/basic.xml/NoInlineStyleInformation">
   <rule ref="rulesets/jsp/basic.xml/NoJspForward">
   <rule ref="rulesets/jsp/basic.xml/NoLongScripts">
   <rule ref="rulesets/java/naming.xml/NoPackage">
   <rule ref="rulesets/jsp/basic.xml/NoScriptlets">
   <rule ref="rulesets/java/design.xml/NonCaseLabelInSwitchStatement">
   <rule ref="rulesets/java/design.xml/NonStaticInitializer">
   <rule ref="rulesets/java/design.xml/NonThreadSafeSingleton">
   <rule ref="rulesets/java/controversial.xml/NullAssignment">
   <rule ref="rulesets/java/controversial.xml/OneDeclarationPerLine">
   <rule ref="rulesets/java/controversial.xml/OnlyOneReturn">
   <rule ref="rulesets/java/design.xml/OptimizableToArrayCall">
   <rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode">
   <rule ref="rulesets/java/naming.xml/PackageCase">
   <rule ref="rulesets/java/design.xml/PositionLiteralsFirstInComparisons">
   <rule ref="rulesets/java/optimizations.xml/PrematureDeclaration">
   <rule ref="rulesets/java/design.xml/PreserveStackTrace">
   <rule ref="rulesets/java/clone.xml/ProperCloneImplementation">
   <rule ref="rulesets/java/logging-jakarta-commons.xml/ProperLogger">
   <rule ref="rulesets/java/optimizations.xml/RedundantFieldInitializer">
   <rule ref="rulesets/java/j2ee.xml/RemoteInterfaceNamingConvention">
   <rule ref="rulesets/java/j2ee.xml/RemoteSessionInterfaceNamingConvention">
   <rule ref="rulesets/java/migrating.xml/ReplaceEnumerationWithIterator">
   <rule ref="rulesets/java/migrating.xml/ReplaceHashtableWithMap">
   <rule ref="rulesets/java/migrating.xml/ReplaceVectorWithList">
   <rule ref="rulesets/java/design.xml/ReturnEmptyArrayRatherThanNull">
   <rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock">
   <rule ref="rulesets/ecmascript/basic.xml/ScopeForInVariable">
   <rule ref="rulesets/java/naming.xml/ShortClassName">
   <rule ref="rulesets/java/migrating.xml/ShortInstantiation">
   <rule ref="rulesets/java/naming.xml/ShortMethodName">
   <rule ref="rulesets/java/naming.xml/ShortVariable">
   <rule ref="rulesets/java/strictexception.xml/SignatureDeclareThrowsException">
   <rule ref="rulesets/java/design.xml/SimpleDateFormatNeedsLocale">
   <rule ref="rulesets/java/junit.xml/SimplifyBooleanAssertion">
   <rule ref="rulesets/java/design.xml/SimplifyBooleanExpressions">
   <rule ref="rulesets/java/design.xml/SimplifyBooleanReturns">
   <rule ref="rulesets/java/design.xml/SimplifyConditional">
   <rule ref="rulesets/java/optimizations.xml/SimplifyStartsWith">
   <rule ref="rulesets/java/design.xml/SingularField">
   <rule ref="rulesets/java/j2ee.xml/StaticEJBFieldShouldBeFinal">
   <rule ref="rulesets/java/strings.xml/StringBufferInstantiationWithChar">
   <rule ref="rulesets/java/strings.xml/StringInstantiation">
   <rule ref="rulesets/java/strings.xml/StringToString">
   <rule ref="rulesets/java/naming.xml/SuspiciousConstantFieldName">
   <rule ref="rulesets/java/naming.xml/SuspiciousEqualsMethodName">
   <rule ref="rulesets/java/naming.xml/SuspiciousHashcodeMethodName">
   <rule ref="rulesets/java/controversial.xml/SuspiciousOctalEscape">
   <rule ref="rulesets/java/design.xml/SwitchDensity">
   <rule ref="rulesets/java/design.xml/SwitchStmtsShouldHaveDefault">
   <rule ref="rulesets/java/logging-java.xml/SystemPrintln">
   <rule ref="rulesets/java/junit.xml/TestClassWithoutTestCases">
   <rule ref="rulesets/java/design.xml/TooFewBranchesForASwitchStatement">
   <rule ref="rulesets/java/codesize.xml/TooManyFields">
   <rule ref="rulesets/java/codesize.xml/TooManyMethods">
   <rule ref="rulesets/java/imports.xml/TooManyStaticImports">
   <rule ref="rulesets/java/design.xml/UncommentedEmptyConstructor">
   <rule ref="rulesets/java/design.xml/UncommentedEmptyMethod">
   <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement">
   <rule ref="rulesets/ecmascript/unnecessary.xml/UnnecessaryBlock">
   <rule ref="rulesets/java/junit.xml/UnnecessaryBooleanAssertion">
   <rule ref="rulesets/java/strings.xml/UnnecessaryCaseChange">
   <rule ref="rulesets/java/controversial.xml/UnnecessaryConstructor">
   <rule ref="rulesets/java/unnecessary.xml/UnnecessaryConversionTemporary">
   <rule ref="rulesets/java/basic.xml/UnnecessaryConversionTemporary">
   <rule ref="rulesets/java/unnecessary.xml/UnnecessaryFinalModifier">
   <rule ref="rulesets/java/basic.xml/UnnecessaryFinalModifier">
   <rule ref="rulesets/java/imports.xml/UnnecessaryFullyQualifiedName">
   <rule ref="rulesets/java/design.xml/UnnecessaryLocalBeforeReturn">
   <rule ref="rulesets/ecmascript/unnecessary.xml/UnnecessaryParentheses">
   <rule ref="rulesets/java/controversial.xml/UnnecessaryParentheses">
   <rule ref="rulesets/java/unnecessary.xml/UnnecessaryReturn">
   <rule ref="rulesets/java/basic.xml/UnnecessaryReturn">
   <rule ref="rulesets/java/optimizations.xml/UnnecessaryWrapperObjectCreation">
   <rule ref="rulesets/ecmascript/basic.xml/UnreachableCode">
   <rule ref="rulesets/java/design.xml/UnsynchronizedStaticDateFormatter">
   <rule ref="rulesets/java/unusedcode.xml/UnusedFormalParameter">
   <rule ref="rulesets/java/imports.xml/UnusedImports">
   <rule ref="rulesets/java/unusedcode.xml/UnusedLocalVariable">
   <rule ref="rulesets/java/unusedcode.xml/UnusedModifier">
   <rule ref="rulesets/java/unnecessary.xml/UnusedNullCheckInEquals">
   <rule ref="rulesets/java/basic.xml/UnusedNullCheckInEquals">
   <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateField">
   <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod">
   <rule ref="rulesets/java/optimizations.xml/UseArrayListInsteadOfVector">
   <rule ref="rulesets/java/optimizations.xml/UseArraysAsList">
   <rule ref="rulesets/java/junit.xml/UseAssertEqualsInsteadOfAssertTrue">
   <rule ref="rulesets/java/junit.xml/UseAssertNullInsteadOfAssertTrue">
   <rule ref="rulesets/java/junit.xml/UseAssertSameInsteadOfAssertTrue">
   <rule ref="rulesets/java/junit.xml/UseAssertTrueInsteadOfAssertEquals">
   <rule ref="rulesets/java/design.xml/UseCollectionIsEmpty">
   <rule ref="rulesets/xsl/xpath.xml/UseConcatOnce">
   <rule ref="rulesets/java/controversial.xml/UseConcurrentHashMap">
   <rule ref="rulesets/java/logging-jakarta-commons.xml/UseCorrectExceptionLogging">
   <rule ref="rulesets/java/strings.xml/UseEqualsToCompareStrings">
   <rule ref="rulesets/java/strings.xml/UseIndexOfChar">
   <rule ref="rulesets/java/design.xml/UseLocaleWithCaseConversions">
   <rule ref="rulesets/java/design.xml/UseNotifyAllInsteadOfNotify">
   <rule ref="rulesets/java/controversial.xml/UseObjectForClearerAPI">
   <rule ref="rulesets/java/j2ee.xml/UseProperClassLoader">
   <rule ref="rulesets/java/design.xml/UseSingleton">
   <rule ref="rulesets/java/optimizations.xml/UseStringBufferForStringAppends">
   <rule ref="rulesets/java/strings.xml/UseStringBufferLength">
   <rule ref="rulesets/java/design.xml/UseVarargs">
   <rule ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable">
   <rule ref="rulesets/java/basic.xml/UselessOperationOnImmutable">
   <rule ref="rulesets/java/unnecessary.xml/UselessOverridingMethod">
   <rule ref="rulesets/java/basic.xml/UselessOverridingMethod">
   <rule ref="rulesets/java/unnecessary.xml/UselessParentheses">
   <rule ref="rulesets/java/basic.xml/UselessParentheses">
   <rule ref="rulesets/java/strings.xml/UselessStringValueOf">
   <rule ref="rulesets/java/naming.xml/VariableNamingConventions">
   <rule ref="rulesets/ecmascript/braces.xml/WhileLoopsMustUseBraces">
   <rule ref="rulesets/java/braces.xml/WhileLoopsMustUseBraces">

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号