Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Plugin not load ruleset and verify all rules at eclipse startup

未关闭
#180 6 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 2 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
25/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
停滞
技术栈
java
领域
devtools

调研方向

首先,使用报告中的 .pmd 和 .ruleset.xml 文件在 Eclipse 中复现启动行为,然后将其与切换分支后的正常状态进行比较。完成的标准是插件在启动时始终加载配置的规则集,并且只验证其中包含的规则。

由索引模型根据 Issue 内容生成。

描述

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

主要语言
Java
星标
99
派生
42
平均合并
1 天 2 小时
30 天内合并 PR
10

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

pmd/pmd-eclipse-plugin 的其他 Issue

查看 pmd/pmd-eclipse-plugin 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。