Skip to content

Instantly share code, notes, and snippets.

@oradkovsky
Created October 22, 2019 20:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oradkovsky/27331d7fa9305ac3a49ba42748a6687f to your computer and use it in GitHub Desktop.
Save oradkovsky/27331d7fa9305ac3a49ba42748a6687f to your computer and use it in GitHub Desktop.
PMD rulesets
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="ruleset"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
<description>Android Rule Sets 1.0</description>
<exclude-pattern>.*/R.java</exclude-pattern>
<exclude-pattern>.*/gen/.*</exclude-pattern>
<exclude-pattern>.*/androidTest/.*</exclude-pattern>
<exclude-pattern>.*/test/.*</exclude-pattern>
<!-- pmd: codestyle -->
<rule ref="category/java/codestyle.xml">
<exclude name="FieldDeclarationsShouldBeAtStartOfClass" />
<exclude name="AtLeastOneConstructor" />
<exclude name="DefaultPackage" />
<exclude name="OnlyOneReturn" />
<exclude name="CallSuperInConstructor" />
<exclude name="AvoidPrefixingMethodParameters" />
<exclude name="MethodArgumentCouldBeFinal" />
<exclude name="LocalVariableCouldBeFinal" />
<exclude name="UseUnderscoresInNumericLiterals" />
</rule>
<rule ref="category/java/codestyle.xml/ClassNamingConventions">
<properties>
<property name="utilityClassPattern" value="[A-Z][a-zA-Z0-9]+" />
</properties>
</rule>
<rule ref="category/java/codestyle.xml/ShortVariable">
<properties>
<property name="minimum" value="2" />
</properties>
</rule>
<rule ref="category/java/codestyle.xml/LongVariable">
<properties>
<property name="minimum" value="35" />
</properties>
</rule>
<rule ref="category/java/codestyle.xml/ShortClassName">
<properties>
<property name="minimum" value="2" />
</properties>
</rule>
<rule ref="category/java/codestyle.xml/ShortMethodName">
<properties>
<property name="minimum" value="2" />
</properties>
</rule>
<!-- pmd: errorprone -->
<rule ref="category/java/errorprone.xml">
<exclude name="AvoidFieldNameMatchingMethodName" />
<exclude name="DataflowAnomalyAnalysis" />
<exclude name="BeanMembersShouldSerialize" />
</rule>
<!-- pmd: design -->
<rule ref="category/java/design.xml">
<exclude name="ExcessiveParameterList" />
<exclude name="ExcessiveImports" />
<exclude name="LawOfDemeter" />
<exclude name="LoosePackageCoupling" />
</rule>
<rule ref="category/java/design.xml/ExcessiveMethodLength">
<properties>
<property name="minimum" value="100" />
</properties>
</rule>
<rule ref="category/java/design.xml/ExcessiveClassLength">
<properties>
<property name="minimum" value="1000" />
</properties>
</rule>
<rule ref="category/java/design.xml/TooManyMethods">
<properties>
<property name="maxmethods" value="30" />
</properties>
</rule>
<rule ref="category/java/design.xml/TooManyFields">
<properties>
<property name="maxfields" value="40" />
</properties>
</rule>
<!-- pmd: performance -->
<rule ref="category/java/performance.xml">
<exclude name="AvoidUsingShortType" />
<exclude name="AvoidFileStream" />
</rule>
<rule ref="category/java/performance.xml/AvoidInstantiatingObjectsInLoops">
<properties>
<priority>4</priority>
</properties>
</rule>
<!-- pmd: best practices -->
<rule ref="category/java/bestpractices.xml">
<exclude name="GuardLogStatement" />
</rule>
</ruleset>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment