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: "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) {
|
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