PMD
Gradle 設定
專案的 Gradle 需要加上 pmd task
在 fly/build.gradle 新增以下
repositories {
mavenCentral() // 這一行.
}
apply plugin: 'pmd'
task pmd(type: Pmd) {
ignoreFailures = true
source = fileTree('src/main/java')
ruleSetFiles =files("${project.projectDir}/config/pmd/PmdRuleSets.xml")
ruleSets = ["java-android"]
reports {
xml {
destination "build/pmd.xml"
}
}
}
設定檔
將 PmdRuleSets.xml 放在 fly/config/pmd 裡面,內容如下
<?xml version="1.0"?>
<ruleset name="Custom ruleset" xmlns="http://pmd.sourceforge.net/ruleset/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
This ruleset checks my code for bad stuff
</description>
<!-- We'll use the entire 'strings' ruleset -->
<rule ref="rulesets/java/strings.xml" />
<rule ref="rulesets/java/android.xml" />
<!-- Here's some rules we'll specify one at a time -->
<rule ref="rulesets/java/unusedcode.xml/UnusedLocalVariable" />
<rule ref="rulesets/java/unusedcode.xml/UnusedPrivateField" />
<rule ref="rulesets/java/imports.xml/DuplicateImports" />
<rule ref="rulesets/java/basic.xml/UnnecessaryConversionTemporary" />
<!-- We want to customize this rule a bit, change the message andraise the priority -->
<rule ref="rulesets/java/basic.xml/EmptyCatchBlock" message="Must handle exceptions">
<priority>2</priority>
</rule>
<!-- Now we'll customize a rule's property value -->
<rule ref="rulesets/java/codesize.xml/CyclomaticComplexity">
<properties>
<property name="reportLevel" value="5" />
</properties>
</rule>
<!-- We want everything from braces.xml exceptWhileLoopsMustUseBraces -->
<rule ref="rulesets/java/braces.xml">
<exclude name="WhileLoopsMustUseBraces" />
</rule>
</ruleset>