gpt4 book ai didi

gradle - Codenarc 无法解析 groovy 类

转载 作者:行者123 更新时间:2023-12-03 05:30:03 24 4
gpt4 key购买 nike

我正在使用带有 gradle 的 codenarc 1.4 来测试 Jenkins 共享库中的 groovy 代码,但是当它运行时输出错误说它无法解析 groovy.lang.Closure 虽然这似乎不是以防止检查正在运行。

遇到问题的代码示例是

interface IStepExecutor {
int sh(String command)
void dir(String path, Closure commands)
...

当运行 codenarc 时会产生以下错误:

file:/.../IStepExecutor.groovy: 8: unable to resolve class Closure 
@ line 8, column 27.
void dir(String path, Closure commands)
^

我的 gradle 配置的 codenarc 部分如下:

dependencies {
compile 'org.codehaus.groovy:groovy-all:2.5.7'
testCompile "org.spockframework:spock-core:1.3-groovy-2.5"
}
codenarc {
toolVersion = "1.4"
}
codenarcMain {
configFile = file("config/codenarc/CodeNarcMain.groovy")
source = 'src'
compilationClasspath += files('src/')
}
codenarcTest {
configFile = file("config/codenarc/CodeNarcMain.groovy")
source = 'src'
compilationClasspath += files('src/')
}

我可以通过添加 import groovy.lang.Closure 来停止错误消息,但这会导致 UnnecessaryGroovyImport 规则出错。有没有办法在不删除 UnnecessaryGroovyImport 规则的情况下防止报告这些错误?

最佳答案

我还在使用 CodeNarc 和 Gradle 进行 Jenkins 共享库测试,发现将以下内容添加到我的 Gradle 配置中解决了类似的问题:

codenarcMain {
compilationClasspath = sourceSets.main.compileClasspath + sourceSets.main.output
}

codenarcTest {
compilationClasspath = codenarcMain.compilationClasspath + sourceSets.test.compileClasspath + sourceSets.test.output
}

我在 comment 中找到了这个关于 GitHub 上的 CodeNarc 问题。

我认为这个问题与每个文件都被隔离编译以进行静态分析有关,这与 Gradle 中的正常编译步骤不同。我对此很陌生,所以可能会误解它。

关于gradle - Codenarc 无法解析 groovy 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59686785/

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