Add PMD and enable quickstart ruleset
PMD allows checking code for violation and quickstart provides a ruleset which are "rules that are most likely to apply everywhere". Violated rules are disabled to get started.
This commit is contained in:
parent
91459dbeb3
commit
9d0703f898
2 changed files with 76 additions and 4 deletions
10
build.gradle
10
build.gradle
|
@ -47,6 +47,16 @@ allprojects {
|
|||
}
|
||||
|
||||
apply plugin: "checkstyle"
|
||||
apply plugin: "pmd"
|
||||
|
||||
pmd {
|
||||
consoleOutput = true
|
||||
toolVersion = "6.51.0"
|
||||
rulesMinimumPriority = 5
|
||||
ruleSetFiles = files("${rootProject.rootDir}/config/pmd/pmd-ruleset.xml")
|
||||
ruleSets = []
|
||||
// ignoreFailures = true
|
||||
}
|
||||
}
|
||||
|
||||
task clean(type: Delete) {
|
||||
|
|
62
config/pmd/pmd-ruleset.xml
Normal file
62
config/pmd/pmd-ruleset.xml
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Custom Rules"
|
||||
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
|
||||
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
|
||||
|
||||
<description>
|
||||
BRouter PMD Ruleset
|
||||
</description>
|
||||
|
||||
<rule ref="rulesets/java/quickstart.xml">
|
||||
<exclude name="AbstractClassWithoutAnyMethod" />
|
||||
<exclude name="AssignmentInOperand" />
|
||||
<exclude name="AssignmentToNonFinalStatic" />
|
||||
<exclude name="AvoidBranchingStatementAsLastInLoop" />
|
||||
<exclude name="AvoidCatchingThrowable" />
|
||||
<exclude name="AvoidInstanceofChecksInCatchClause" />
|
||||
<exclude name="AvoidProtectedFieldInFinalClass" />
|
||||
<exclude name="AvoidUsingVolatile" />
|
||||
<exclude name="CloseResource" />
|
||||
<exclude name="CompareObjectsWithEquals" />
|
||||
<exclude name="ControlStatementBraces" />
|
||||
<exclude name="DoNotCallGarbageCollectionExplicitly" />
|
||||
<exclude name="EmptyCatchBlock" />
|
||||
<exclude name="EmptyControlStatement" />
|
||||
<exclude name="ForLoopCanBeForeach" />
|
||||
<exclude name="LiteralsFirstInComparisons" />
|
||||
<exclude name="LogicInversion" />
|
||||
<exclude name="LooseCoupling" />
|
||||
<exclude name="MissingOverride" />
|
||||
<exclude name="OneDeclarationPerLine" />
|
||||
<exclude name="OverrideBothEqualsAndHashcode" />
|
||||
<exclude name="PreserveStackTrace" />
|
||||
<exclude name="PrimitiveWrapperInstantiation" />
|
||||
<exclude name="ReturnEmptyCollectionRatherThanNull" />
|
||||
<exclude name="SimplifiableTestAssertion" />
|
||||
<exclude name="SimplifiedTernary" />
|
||||
<exclude name="SimplifyBooleanReturns" />
|
||||
<exclude name="SingularField" />
|
||||
<exclude name="UncommentedEmptyConstructor" />
|
||||
<exclude name="UncommentedEmptyMethodBody" />
|
||||
<exclude name="UnnecessaryFullyQualifiedName" />
|
||||
<exclude name="UnnecessaryImport" />
|
||||
<exclude name="UnnecessaryModifier" />
|
||||
<exclude name="UnnecessaryReturn" />
|
||||
<exclude name="UnusedFormalParameter" />
|
||||
<exclude name="UnusedLocalVariable" />
|
||||
<exclude name="UnusedPrivateField" />
|
||||
<exclude name="UnusedPrivateMethod" />
|
||||
<exclude name="UseCollectionIsEmpty" />
|
||||
<exclude name="UseLocaleWithCaseConversions" />
|
||||
<exclude name="UseNotifyAllInsteadOfNotify" />
|
||||
<exclude name="UseUtilityClass" />
|
||||
<exclude name="UselessParentheses" />
|
||||
|
||||
<!-- Naming -->
|
||||
<exclude name="FormalParameterNamingConventions" />
|
||||
<exclude name="LocalVariableNamingConventions" />
|
||||
<exclude name="MethodNamingConventions" />
|
||||
</rule>
|
||||
|
||||
</ruleset>
|
Loading…
Reference in a new issue