gpt4 book ai didi

gradle - 运行 Gradle 的 PMD 插件时在类路径中包含 jar

转载 作者:行者123 更新时间:2023-12-04 04:00:18 26 4
gpt4 key购买 nike

我正在尝试使用自定义规则集文件运行 PMD,但该规则集包含一个自定义类的规则。此类存在于一个 jar 中,该 jar 未作为依赖项引入,而是以 zip 文件(这是一个依赖项)并被解压。想象一下 PMD 规则类就在 build/extralib/blah.jar 中.

仅在运行 PMD 时如何将其包含在我的类路径中?我已经尝试过,但没有奏效:

pmd {
ruleSetFiles = files("build/utils/pmd-rules.xml")
pmdClasspath = files("build/extralib")
}

需要明确的是,错误是: java.lang.ClassNotFoundException: com.package.for.pmd.CrazyRule .运行 pmdMain 时会发生这种情况.

次要问题: Pmd 和有什么区别?和 PmdExtension ? Pmd有 pmdClasspath ,但 PmdExtension 没有。当我添加 pmdClasspath , 我有:
Creating properties on demand (a.k.a. dynamic properties) has been deprecated and is scheduled to be removed in Gradle 2.0. Please read http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html for information on the replacement for dynamic properties.
Deprecated dynamic property: "pmdClasspath" on "org.gradle.api.plugins.quality.PmdExtension_Decorated@70221fc5", value: "file collection".

所以我猜它只遵守 PmdExtension?作为 Gradle 新手,这有点令人困惑......

最佳答案

配置时pmd { ... } ,您正在配置扩展。有时您可能需要下拉到任务级别并配置 tasks.pmd { ... }反而。 (具有相同名称的扩展和任务是代码质量和 IDE 扩展/任务使用的常见模式。)向 PMD 类路径添加内容的最简单方法是:

dependencies {
pmd ...
}

我还没有尝试过这是否适用于添加外部规则,但可能会。

关于gradle - 运行 Gradle 的 PMD 插件时在类路径中包含 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17175467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com