Skip to content

Plugin not load ruleset and verify all rules at eclipse startup #180

@Tenebrosful

Description

@Tenebrosful

Hi,

I don't know why but sometimes the PMD don't want to read the ruleset file and try to verify all rules.

The only way that i found to fix that is switching git branch to a branch with different .pmd and .ruleset.xml then come back to branch and it correcly read it again.

My ruleset.xml

<ruleset xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	name="pmd-eclipse"
	xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
	
	<description>PMD Plugin preferences rule set</description>
	
	<!-- Included files -->
	<include-pattern>./WEB-INF/src/*</include-pattern>
	<include-pattern>./WebContent/*</include-pattern>
	
	<exclude-pattern>*.min.js</exclude-pattern>
	<exclude-pattern>./node_modules/*</exclude-pattern>
	<exclude-pattern>./WebContent/Plugin/*</exclude-pattern>
	
	<!--  HTML rules  -->
	<rule ref="category/html/bestpractices.xml/AvoidInlineStyles"/>
	<rule ref="category/html/bestpractices.xml/UnnecessaryTypeAttribute"/>
	<rule ref="category/html/bestpractices.xml/UseAltAttributeForImages"/>
	<!--  Java Best Practices rules  -->
	<rule ref="category/java/bestpractices.xml/AbstractClassWithoutAbstractMethod"/>
	<rule ref="category/java/bestpractices.xml/ArrayIsStoredDirectly"/>
	<rule ref="category/java/bestpractices.xml/AvoidMessageDigestField"/>
	<rule ref="category/java/bestpractices.xml/AvoidPrintStackTrace"/>
	<rule ref="category/java/bestpractices.xml/AvoidReassigningCatchVariables"/>
	<rule ref="category/java/bestpractices.xml/AvoidReassigningLoopVariables"/>
	<rule ref="category/java/bestpractices.xml/AvoidReassigningParameters"/>
	<rule ref="category/java/bestpractices.xml/AvoidStringBufferField"/>
	<rule ref="category/java/bestpractices.xml/AvoidUsingHardCodedIP"/>
	<rule ref="category/java/bestpractices.xml/CheckResultSet"/>
	<rule ref="category/java/bestpractices.xml/ConstantsInInterface"/>
	<rule ref="category/java/bestpractices.xml/DefaultLabelNotLastInSwitchStmt"/>
	<rule ref="category/java/bestpractices.xml/DoubleBraceInitialization"/>
	<rule ref="category/java/bestpractices.xml/ForLoopCanBeForeach"/>
	<rule ref="category/java/bestpractices.xml/JUnit4SuitesShouldUseSuiteAnnotation"/>
	<rule ref="category/java/bestpractices.xml/JUnit4TestShouldUseAfterAnnotation"/>
	<rule ref="category/java/bestpractices.xml/JUnit4TestShouldUseBeforeAnnotation"/>
	<rule ref="category/java/bestpractices.xml/JUnit4TestShouldUseTestAnnotation"/>
	<rule ref="category/java/bestpractices.xml/JUnit5TestShouldBePackagePrivate"/>
	<rule ref="category/java/bestpractices.xml/JUnitAssertionsShouldIncludeMessage"/>
	<rule ref="category/java/bestpractices.xml/JUnitTestsShouldIncludeAssert"/>
	<rule ref="category/java/bestpractices.xml/JUnitUseExpected"/>
	<rule ref="category/java/bestpractices.xml/LiteralsFirstInComparisons"/>
	<rule ref="category/java/bestpractices.xml/MethodReturnsInternalArray"/>
	<rule ref="category/java/bestpractices.xml/MissingOverride"/>
	<rule ref="category/java/bestpractices.xml/OneDeclarationPerLine">
		<properties>
			<property name="strictMode" value="true"/>
		</properties>
	</rule>
	<rule ref="category/java/bestpractices.xml/PreserveStackTrace"/>
	<rule ref="category/java/bestpractices.xml/PrimitiveWrapperInstantiation"/>
	<rule ref="category/java/bestpractices.xml/ReplaceEnumerationWithIterator"/>
	<rule ref="category/java/bestpractices.xml/ReplaceHashtableWithMap"/>
	<rule ref="category/java/bestpractices.xml/ReplaceVectorWithList" />
	<rule ref="category/java/bestpractices.xml/SimplifiableTestAssertion"/>
	<rule ref="category/java/bestpractices.xml/SwitchStmtsShouldHaveDefault"/>
	<!-- <rule ref="category/java/bestpractices.xml/SystemPrintln"/> -->
	<rule ref="category/java/bestpractices.xml/UnusedAssignment"/>
	<rule ref="category/java/bestpractices.xml/UnusedFormalParameter"/>
	<rule ref="category/java/bestpractices.xml/UnusedLocalVariable"/>
	<rule ref="category/java/bestpractices.xml/UnusedPrivateField"/>
	<rule ref="category/java/bestpractices.xml/UnusedPrivateMethod"/>
	<rule ref="category/java/bestpractices.xml/UseCollectionIsEmpty"/>
	<rule ref="category/java/bestpractices.xml/UseStandardCharsets"/>
	<rule ref="category/java/bestpractices.xml/UseTryWithResources"/>
	<rule ref="category/java/bestpractices.xml/UseVarargs"/>
	<rule ref="category/java/bestpractices.xml/WhileLoopWithLiteralBoolean"/>
	<!--  Java Code Style  -->
	<rule ref="category/java/codestyle.xml/AvoidDollarSigns"/>
	<rule ref="category/java/codestyle.xml/AvoidProtectedFieldInFinalClass"/>
	<rule ref="category/java/codestyle.xml/AvoidProtectedMethodInFinalClassNotExtending"/>
	<rule ref="category/java/codestyle.xml/BooleanGetMethodName"/>
	<rule ref="category/java/codestyle.xml/CallSuperInConstructor"/>
	<rule ref="category/java/codestyle.xml/ClassNamingConventions"/>
	<rule ref="category/java/codestyle.xml/ConfusingTernary"/>
	<rule ref="category/java/codestyle.xml/ControlStatementBraces"/>
	<rule ref="category/java/codestyle.xml/EmptyControlStatement"/>
	<rule ref="category/java/codestyle.xml/EmptyMethodInAbstractClassShouldBeAbstract"/>
	<rule ref="category/java/codestyle.xml/ExtendsObject"/>
	<rule ref="category/java/codestyle.xml/FieldDeclarationsShouldBeAtStartOfClass"/>
	<rule ref="category/java/codestyle.xml/FieldNamingConventions">
		<properties>
			<property name="finalPattern" value="[A-Z][A-Z0-9_]*" />
		</properties>
	</rule>
	<rule ref="category/java/codestyle.xml/FinalParameterInAbstractMethod"/>
	<rule ref="category/java/codestyle.xml/ForLoopShouldBeWhileLoop"/>
	<rule ref="category/java/codestyle.xml/FormalParameterNamingConventions"/>
	<rule ref="category/java/codestyle.xml/GenericsNaming"/>
	<rule ref="category/java/codestyle.xml/IdenticalCatchBranches"/>
	<rule ref="category/java/codestyle.xml/LinguisticNaming"/>
	<rule ref="category/java/codestyle.xml/LocalVariableNamingConventions"/>
	<rule ref="category/java/codestyle.xml/MethodNamingConventions"/>
	<rule ref="category/java/codestyle.xml/NoPackage"/>
	<rule ref="category/java/codestyle.xml/PackageCase"/>
	<rule ref="category/java/codestyle.xml/PrematureDeclaration"/>
	<rule ref="category/java/codestyle.xml/ShortClassName">
		<properties>
			<property name="minimum" value="3"/>
		</properties>
	</rule>
	<rule ref="category/java/codestyle.xml/ShortMethodName"/>
	<rule ref="category/java/codestyle.xml/ShortVariable"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryAnnotationValueElement"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryBoxing"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryCast"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryConstructor"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryFullyQualifiedName"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryImport"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryLocalBeforeReturn"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryModifier"/>
	<rule ref="category/java/codestyle.xml/UnnecessaryReturn" />
	<rule ref="category/java/codestyle.xml/UnnecessarySemicolon"/>
	<rule ref="category/java/codestyle.xml/UseDiamondOperator"/>
	<rule ref="category/java/codestyle.xml/UselessParentheses"/>
	<rule ref="category/java/codestyle.xml/UselessQualifiedThis"/>
	<rule ref="category/java/codestyle.xml/UseShortArrayInitializer"/>
	<!--  Java Design  -->
	<rule ref="category/java/design.xml/AbstractClassWithoutAnyMethod" />
	<rule ref="category/java/design.xml/AvoidDeeplyNestedIfStmts"/>
	<rule ref="category/java/design.xml/AvoidRethrowingException"/>
	<rule ref="category/java/design.xml/AvoidThrowingNewInstanceOfSameException"/>
	<rule ref="category/java/design.xml/AvoidThrowingNullPointerException"/>
	<rule ref="category/java/design.xml/AvoidThrowingRawExceptionTypes"/>
	<rule ref="category/java/design.xml/AvoidUncheckedExceptionsInSignatures"/>
	<!-- <rule ref="category/java/design.xml/CognitiveComplexity"/> -->
	<rule ref="category/java/design.xml/CollapsibleIfStatements"/>
	<!-- <rule ref="category/java/design.xml/CyclomaticComplexity"/> -->
	<rule ref="category/java/design.xml/DoNotExtendJavaLangError"/>
	<rule ref="category/java/design.xml/ExceptionAsFlowControl"/>
	<rule ref="category/java/design.xml/ExcessiveParameterList"/>
	<rule ref="category/java/design.xml/FinalFieldCouldBeStatic"/>
	<rule ref="category/java/design.xml/ImmutableField"/>
	<rule ref="category/java/design.xml/LogicInversion"/>
	<rule ref="category/java/design.xml/MutableStaticState"/>
	<rule ref="category/java/design.xml/SignatureDeclareThrowsException"/>
	<rule ref="category/java/design.xml/SimplifiedTernary"/>
	<rule ref="category/java/design.xml/SimplifyBooleanExpressions"/>
	<rule ref="category/java/design.xml/SimplifyBooleanReturns"/>
	<rule ref="category/java/design.xml/SimplifyConditional"/>
	<rule ref="category/java/design.xml/SingularField"/>
	<rule ref="category/java/design.xml/SwitchDensity"/>
	<rule ref="category/java/design.xml/UselessOverridingMethod"/>
	<rule ref="category/java/design.xml/UseUtilityClass"/>
	<!--  Java Documentation  -->
	<rule ref="category/java/documentation.xml/CommentRequired"/>
	<rule ref="category/java/documentation.xml/UncommentedEmptyConstructor"/>
	<rule ref="category/java/documentation.xml/UncommentedEmptyMethodBody"/>
	<!--  Java Error Prone  -->
	<rule ref="category/java/errorprone.xml/AssignmentInOperand"/>
	<rule ref="category/java/errorprone.xml/AssignmentToNonFinalStatic"/>
	<rule ref="category/java/errorprone.xml/AvoidAssertAsIdentifier"/>
	<rule ref="category/java/errorprone.xml/AvoidBranchingStatementAsLastInLoop"/>
	<rule ref="category/java/errorprone.xml/AvoidCatchingNPE"/>
	<rule ref="category/java/errorprone.xml/AvoidCatchingThrowable"/>
	<rule ref="category/java/errorprone.xml/AvoidDecimalLiteralsInBigDecimalConstructor"/>
	<!-- <rule ref="category/java/errorprone.xml/AvoidDuplicateLiterals">
		<properties>
			<property name="exceptionList" value="&lt;div&gt;,&lt;/div&gt;"/>
		</properties>
	</rule> -->
	<rule ref="category/java/errorprone.xml/AvoidEnumAsIdentifier"/>
	<rule ref="category/java/errorprone.xml/AvoidFieldNameMatchingMethodName"/>
	<rule ref="category/java/errorprone.xml/AvoidInstanceofChecksInCatchClause"/>
	<rule ref="category/java/errorprone.xml/AvoidLiteralsInIfCondition">
		<properties>
			<property name="ignoreMagicNumbers" value="-1,0,1"/>
		</properties>
	</rule>
	<rule ref="category/java/errorprone.xml/AvoidLosingExceptionInformation"/>
	<rule ref="category/java/errorprone.xml/AvoidMultipleUnaryOperators"/>
	<rule ref="category/java/errorprone.xml/AvoidUsingOctalValues"/>
	<rule ref="category/java/errorprone.xml/BrokenNullCheck"/>
	<rule ref="category/java/errorprone.xml/CheckSkipResult"/>
	<rule ref="category/java/errorprone.xml/ClassCastExceptionWithToArray" />
	<rule ref="category/java/errorprone.xml/CloneMethodMustBePublic"/>
	<rule ref="category/java/errorprone.xml/CloneMethodMustImplementCloneable"/>
	<rule ref="category/java/errorprone.xml/CloneMethodReturnTypeMustMatchClassName"/>
	<rule ref="category/java/errorprone.xml/CloseResource"/>
	<rule ref="category/java/errorprone.xml/CompareObjectsWithEquals"/>
	<rule ref="category/java/errorprone.xml/ComparisonWithNaN"/>
	<rule ref="category/java/errorprone.xml/ConstructorCallsOverridableMethod"/>
	<rule ref="category/java/errorprone.xml/DetachedTestCase"/>
	<rule ref="category/java/errorprone.xml/DoNotCallGarbageCollectionExplicitly"/>
	<rule ref="category/java/errorprone.xml/DoNotExtendJavaLangThrowable"/>
	<rule ref="category/java/errorprone.xml/DoNotHardCodeSDCard"/>
	<rule ref="category/java/errorprone.xml/DoNotTerminateVM"/>
	<rule ref="category/java/errorprone.xml/DoNotThrowExceptionInFinally"/>
	<rule ref="category/java/errorprone.xml/DontUseFloatTypeForLoopIndices"/>
	<rule ref="category/java/errorprone.xml/EmptyCatchBlock"/>
	<rule ref="category/java/errorprone.xml/EqualsNull"/>
	<rule ref="category/java/errorprone.xml/IdempotentOperations"/>
	<rule ref="category/java/errorprone.xml/ImplicitSwitchFallThrough"/>
	<rule ref="category/java/errorprone.xml/InstantiationToGetClass"/>
	<rule ref="category/java/errorprone.xml/InvalidLogMessageFormat"/>
	<rule ref="category/java/errorprone.xml/JumbledIncrementer"/>
	<rule ref="category/java/errorprone.xml/JUnitSpelling"/>
	<rule ref="category/java/errorprone.xml/JUnitStaticSuite"/>
	<rule ref="category/java/errorprone.xml/MethodWithSameNameAsEnclosingClass"/>
	<rule ref="category/java/errorprone.xml/MisplacedNullCheck"/>
	<rule ref="category/java/errorprone.xml/MissingStaticMethodInNonInstantiatableClass"/>
	<rule ref="category/java/errorprone.xml/MoreThanOneLogger"/>
	<rule ref="category/java/errorprone.xml/NonCaseLabelInSwitchStatement"/>
	<rule ref="category/java/errorprone.xml/NonSerializableClass"/>
	<rule ref="category/java/errorprone.xml/NonStaticInitializer"/>
	<rule ref="category/java/errorprone.xml/NullAssignment"/>
	<rule ref="category/java/errorprone.xml/OverrideBothEqualsAndHashcode"/>
	<rule ref="category/java/errorprone.xml/ProperCloneImplementation"/>
	<rule ref="category/java/errorprone.xml/ProperLogger"/>
	<rule ref="category/java/errorprone.xml/ReturnEmptyCollectionRatherThanNull"/>
	<rule ref="category/java/errorprone.xml/ReturnFromFinallyBlock"/>
	<rule ref="category/java/errorprone.xml/SimpleDateFormatNeedsLocale"/>
	<rule ref="category/java/errorprone.xml/SingleMethodSingleton"/>
	<rule ref="category/java/errorprone.xml/SingletonClassReturningNewInstance"/>
	<rule ref="category/java/errorprone.xml/StringBufferInstantiationWithChar"/>
	<rule ref="category/java/errorprone.xml/SuspiciousEqualsMethodName"/>
	<rule ref="category/java/errorprone.xml/SuspiciousHashcodeMethodName"/>
	<rule ref="category/java/errorprone.xml/SuspiciousOctalEscape"/>
	<rule ref="category/java/errorprone.xml/TestClassWithoutTestCases"/>
	<rule ref="category/java/errorprone.xml/UnconditionalIfStatement"/>
	<rule ref="category/java/errorprone.xml/UnnecessaryBooleanAssertion"/>
	<rule ref="category/java/errorprone.xml/UnnecessaryCaseChange"/>
	<rule ref="category/java/errorprone.xml/UnnecessaryConversionTemporary"/>
	<rule ref="category/java/errorprone.xml/UnusedNullCheckInEquals"/>
	<rule ref="category/java/errorprone.xml/UseCorrectExceptionLogging"/>
	<rule ref="category/java/errorprone.xml/UseEqualsToCompareStrings"/>
	<rule ref="category/java/errorprone.xml/UselessOperationOnImmutable"/>
	<rule ref="category/java/errorprone.xml/UseLocaleWithCaseConversions"/>
	<rule ref="category/java/errorprone.xml/UseProperClassLoader"/>
	<!--  Java Multithreading  -->
	<rule ref="category/java/multithreading.xml/AvoidSynchronizedAtMethodLevel"/>
	<rule ref="category/java/multithreading.xml/AvoidThreadGroup"/>
	<rule ref="category/java/multithreading.xml/AvoidUsingVolatile"/>
	<rule ref="category/java/multithreading.xml/DoNotUseThreads"/>
	<rule ref="category/java/multithreading.xml/DontCallThreadRun"/>
	<rule ref="category/java/multithreading.xml/DoubleCheckedLocking"/>
	<rule ref="category/java/multithreading.xml/NonThreadSafeSingleton"/>
	<rule ref="category/java/multithreading.xml/UnsynchronizedStaticFormatter"/>
	<rule ref="category/java/multithreading.xml/UseConcurrentHashMap"/>
	<rule ref="category/java/multithreading.xml/UseNotifyAllInsteadOfNotify"/>
	<!--  Java Performance  -->
	<rule ref="category/java/performance.xml/AddEmptyString"/>
	<rule ref="category/java/performance.xml/AppendCharacterWithChar"/>
	<rule ref="category/java/performance.xml/AvoidArrayLoops"/>
	<rule ref="category/java/performance.xml/AvoidCalendarDateCreation"/>
	<rule ref="category/java/performance.xml/AvoidFileStream"/>
	<rule ref="category/java/performance.xml/AvoidInstantiatingObjectsInLoops"/>
	<rule ref="category/java/performance.xml/BigIntegerInstantiation"/>
	<rule ref="category/java/performance.xml/ConsecutiveAppendsShouldReuse"/>
	<rule ref="category/java/performance.xml/ConsecutiveLiteralAppends"/>
	<rule ref="category/java/performance.xml/InefficientEmptyStringCheck"/>
	<rule ref="category/java/performance.xml/InefficientStringBuffering"/>
	<rule ref="category/java/performance.xml/InsufficientStringBufferDeclaration"/>
	<rule ref="category/java/performance.xml/OptimizableToArrayCall"/>
	<rule ref="category/java/performance.xml/RedundantFieldInitializer"/>
	<rule ref="category/java/performance.xml/StringInstantiation"/>
	<rule ref="category/java/performance.xml/StringToString"/>
	<rule ref="category/java/performance.xml/TooFewBranchesForASwitchStatement"/>
	<rule ref="category/java/performance.xml/UseArrayListInsteadOfVector"/>
	<rule ref="category/java/performance.xml/UseArraysAsList"/>
	<rule ref="category/java/performance.xml/UseIndexOfChar"/>
	<rule ref="category/java/performance.xml/UseIOStreamsWithApacheCommonsFileItem"/>
	<rule ref="category/java/performance.xml/UselessStringValueOf"/>
	<rule ref="category/java/performance.xml/UseStringBufferForStringAppends"/>
	<rule ref="category/java/performance.xml/UseStringBufferLength"/>
	<!--  Java Security  -->
	<rule ref="category/java/security.xml/HardCodedCryptoKey"/>
	<rule ref="category/java/security.xml/InsecureCryptoIv"/>
	<!-- JavaScript Best Practice -->
	<rule ref="category/ecmascript/bestpractices.xml/AvoidWithStatement" />
	<rule ref="category/ecmascript/bestpractices.xml/ConsistentReturn" />
	<rule ref="category/ecmascript/bestpractices.xml/GlobalVariable" />
	<rule ref="category/ecmascript/bestpractices.xml/ScopeForInVariable" />
	<rule ref="category/ecmascript/bestpractices.xml/UseBaseWithParseInt" />
	<!-- JavaScript Style -->
	<rule ref="category/ecmascript/codestyle.xml/AssignmentInOperand" />
	<rule ref="category/ecmascript/codestyle.xml/ForLoopsMustUseBraces" />
	<rule ref="category/ecmascript/codestyle.xml/IfElseStmtsMustUseBraces" />
	<rule ref="category/ecmascript/codestyle.xml/IfStmtsMustUseBraces" />
	<rule ref="category/ecmascript/codestyle.xml/NoElseReturn" />
	<rule ref="category/ecmascript/codestyle.xml/UnnecessaryBlock" />
	<rule ref="category/ecmascript/codestyle.xml/UnnecessaryParentheses" />
	<rule ref="category/ecmascript/codestyle.xml/UnreachableCode" />
	<rule ref="category/ecmascript/codestyle.xml/WhileLoopsMustUseBraces" />
	<!--  JavaScript Error Prone -->
	<rule ref="category/ecmascript/errorprone.xml/AvoidTrailingComma" />
</ruleset>

My .pmd

<?xml version="1.0" encoding="UTF-8"?>
<pmd>
    <workingSet>Aggregate:Java Main Sources:Java Test</workingSet>
    <useProjectRuleSet>true</useProjectRuleSet>
    <ruleSetFile>.ruleset.xml</ruleSetFile>
    <includeDerivedFiles>false</includeDerivedFiles>
    <violationsAsErrors>false</violationsAsErrors>
    <fullBuildEnabled>true</fullBuildEnabled>
</pmd>

Eclipse version: Eclipse IDE for Enterprise Java and Web Developers (includes Incubating components) 4.27.0
PMD Version: 7.0.0.v20230502-1028-rc2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions