您的位置:首页 > 产品设计 > 产品经理

gradle pmd插件的自定义规则的使用

2015-12-23 17:52 701 查看
gradle pmd plugin的规则是支持自定义的。在使用的过程中遇到了些问题, 先记录如下。

build.gradle中使用pmd 插件,其中ruleSets = [] 是必须的, 否则ruleSetFiles不生效。因为gradle pmd会使用一些默认规则,例如basic。

task pmd (type: Pmd) {

    ruleSetFiles = files("$rootProject.projectDir/tools/pmd/ruleset.xml")

    ruleSets = [] 

    source = fileTree('src')

    ignoreFailures = true

    reports {

        xml.enabled = true

        html.enabled = false

    }

}

pmd/ruleset.xml的内容,这里挑了一些规则。

<?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.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
  <description>

  This ruleset used by pmd to check my code for bad stuff

  </description>

  <rule ref="rulesets/java/android.xml">

    <exclude name="CallSuperLast"/>

  </rule>

  <rule ref="rulesets/java/basic.xml">

    <exclude name="CollapsibleIfStatements"/>

  </rule>

  <rule ref="rulesets/java/clone.xml"/>

  <rule ref="rulesets/java/finalizers.xml"/>

  <rule ref="rulesets/java/imports.xml"/>

  <rule ref="rulesets/java/javabeans.xml"/>

  <rule ref="rulesets/java/optimizations.xml">

    <exclude name="LocalVariableCouldBeFinal"/>

    <exclude name="MethodArgumentCouldBeFinal"/>

  </rule>

  <rule ref="rulesets/java/sunsecure.xml"/>

  <rule ref="rulesets/java/unnecessary.xml">

    <exclude name="UselessParentheses"/>

  </rule>

</ruleset>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gradle pmd