【发布时间】:2022-02-17 02:42:08
【问题描述】:
在处理项目arch4u-pmd 期间,我们创建了几个基于java 的pmd 规则,在基于XML 的规则集our-rules.xml 中配置它们,并将其作为普通的java lib/artifact (io.github.abc:my-pmd-rules:0.1.0) 发布到我们的工件存储库中。
工件结构如下所示:
> unzip -l my-pmd-rules-0.1.0.jar
Archive: my-pmd-rules-0.1.0.jar
Length Date Time Name
--------- ---------- ----- ----
0 02-15-2022 00:24 META-INF/
139 02-15-2022 00:24 META-INF/MANIFEST.MF
0 02-15-2022 00:24 io/
0 02-15-2022 00:24 io/github/
0 02-15-2022 00:24 io/github/rules/
...
4781 02-15-2022 00:24 io/github/rules/MissingMandatoryAnnotation.class
...
1138 02-15-2022 00:24 io/github/rules/our-rules.xml
...
我们如何使用pmd plugin 将它们添加到 Gradle 项目中?
我们必须处理以下材料/问题/答案:
- https://stackoverflow.com/search?page=2&tab=Relevance&q=pmd%20classpath
- ClassNotFoundException: Using custom java rule for PMD ruleset
- Gradle's PMD plugin: what are acceptable arguments?
- Adding a ruleset to PMD?
- Adding custom rules in PMD - class not found issue
- https://discuss.gradle.org/t/pmd-ruleset-not-available-in-classpath/7201
- https://discuss.gradle.org/t/custom-rules-with-pmd-plugin/5859/4
- How to configure PMD Auxiliary classpath in Sonar
- https://docs.gradle.org/current/userguide/pmd_plugin.html
- https://github.com/gradle/gradle/blob/master/subprojects/code-quality/src/main/groovy/org/gradle/api/plugins/quality/PmdPlugin.java
-
Custom PMD rule with Gradle 也不行
tasks.withType(Pmd) { pmdClasspath += file("path/to/rules.jar") }
【问题讨论】:
标签: java gradle static-analysis gradle-plugin pmd