Gradle中配置PMD如何排除指定目录?
Gradle PMD 排除指定目录的配置方法
要在Gradle项目的PMD代码扫描中排除指定目录,直接在现有配置基础上添加排除规则即可,以下是两种常用实现方式:
方式一:全局配置(对所有PMD任务生效)
在pmd闭包中直接添加exclude规则,支持Ant风格的路径匹配:
pmd { toolVersion = "6.48.0" sourceSets = listOf(java.sourceSets.findByName("main")) ruleSetFiles = files("/ruleset.xml") // 添加需要排除的目录,按需修改路径 exclude "**/generated/**" // 排除所有层级下的generated目录 exclude "**/third-party/**" // 排除所有层级下的third-party目录 exclude "**/legacy/code/**" // 排除特定嵌套目录 }
方式二:针对单个任务配置(更灵活)
如果只需要给特定的PMD任务(比如pmdMain)设置排除规则,单独配置任务即可:
pmd { toolVersion = "6.48.0" sourceSets = listOf(java.sourceSets.findByName("main")) ruleSetFiles = files("/ruleset.xml") } // 单独给pmdMain任务添加排除规则 tasks.named("pmdMain") { exclude "**/generated/**" exclude "**/test-helpers/**" }
路径匹配说明
使用Ant风格通配符来匹配路径:
*:匹配任意字符(不含路径分隔符/)**:匹配任意层级的目录和字符?:匹配单个字符(不含路径分隔符/)
比如**/*.temp.java可以排除所有层级下后缀为.temp.java的文件。
内容的提问来源于stack exchange,提问作者user1555190
相关产品推荐
相关产品推荐

