如何解决PMD Gradle插件中的两层规则集
我想在gradle项目中设置PMD,以使其具有两个规则集,一个规则集是强制性的,可以中断构建,而另一个规则集只是报告但可以继续构建。这可能吗?
解决方法
绝对有可能!
默认情况下,PMD插件将为每个源集设置1个要运行的任务。您可以将其配置为您的2条规则中的一项:
def sourceSets = convention.getPlugin(org.gradle.api.plugins.JavaPluginConvention).sourceSets
sourceSets.all { ss ->
def taskName = ss.getTaskName('optionalPmd',null)
project.tasks.register(taskName) { task ->
task.description = "Run OPTIONAL PMD analysis for " + ss.name + " classes"
task.source = ss.allJava
task.conventionMapping.map("classpath",() -> ss.output.plus(ss.compileClasspath))
task.ignoreFailures = true // override the value previously set
task.ruleSetFiles = files("path/to/optional/ruleset.xml") // override the value previously set
}
// Have the optional analysis run during "check" phase
project.tasks.named(org.gradle.api.plugins.JavaBasePlugin.CHECK_TASK_NAME) { checkTask ->
checkTask.dependsOn taskName
}
}
然后,我们需要为非强制性规则设置一组新的独立任务,大致遵循……
{{1}}
我正在认真地写这篇文章,因此可能需要一些调整…
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。