无法解析 class - gradle
Unable to resolve class - gradle
我的目录结构如下:
src
--foo
--A.groovy
--test
--groovy
buildTest.groovy
这是 A.groovy class :
package foo
class A {
void execute() {
println "Inside A"
}
}
这是我的buildTest.groovy
class buildTest {
@Test
void should_execute(){
A a = new A()
def result = a.execute()
}
}
当我 运行 ./gradlew 测试时,它抛出错误:
Unable to resolve class A
A a = new A()
^
这是我的 build.gradle :
plugins {
id "groovy"
}
repositories {
mavenCentral()
maven { url 'https://repo.jenkins-ci.org/releases/' }
}
dependencies {
compile 'org.eclipse.hudson:hudson-core:3.2.1'
implementation 'org.codehaus.groovy:groovy-all:3.0.7'
testImplementation 'junit:junit:4.12'
testImplementation "com.lesfurets:jenkins-pipeline-unit:1.3"
}
sourceSets {
main {
groovy {
srcDirs = ['src/foo']
}
}
}
谁能帮我解决这个错误。
您在包 foo
中声明了一个 class A
。 (请注意,布局不会反映这一点,因为文件应该在 src/foo/foo/A.groovy
中,尽管 Groovy 并不关心)。
但是,测试 class 不在包中,因此看不到 foo.A
。要么导入它,要么将测试 class 也移动到包 foo
中。或者,从 class A
中删除包声明,但我认为这不是好的做法。
我也同意关于不更改布局的评论,除非您有充分的理由(例如,您正在处理遗留项目)。这可能是导致混淆 class 实际在哪个包中的原因。
我的目录结构如下:
src
--foo
--A.groovy
--test
--groovy
buildTest.groovy
这是 A.groovy class :
package foo
class A {
void execute() {
println "Inside A"
}
}
这是我的buildTest.groovy
class buildTest {
@Test
void should_execute(){
A a = new A()
def result = a.execute()
}
}
当我 运行 ./gradlew 测试时,它抛出错误:
Unable to resolve class A
A a = new A()
^
这是我的 build.gradle :
plugins {
id "groovy"
}
repositories {
mavenCentral()
maven { url 'https://repo.jenkins-ci.org/releases/' }
}
dependencies {
compile 'org.eclipse.hudson:hudson-core:3.2.1'
implementation 'org.codehaus.groovy:groovy-all:3.0.7'
testImplementation 'junit:junit:4.12'
testImplementation "com.lesfurets:jenkins-pipeline-unit:1.3"
}
sourceSets {
main {
groovy {
srcDirs = ['src/foo']
}
}
}
谁能帮我解决这个错误。
您在包 foo
中声明了一个 class A
。 (请注意,布局不会反映这一点,因为文件应该在 src/foo/foo/A.groovy
中,尽管 Groovy 并不关心)。
但是,测试 class 不在包中,因此看不到 foo.A
。要么导入它,要么将测试 class 也移动到包 foo
中。或者,从 class A
中删除包声明,但我认为这不是好的做法。
我也同意关于不更改布局的评论,除非您有充分的理由(例如,您正在处理遗留项目)。这可能是导致混淆 class 实际在哪个包中的原因。