在Gradle构建中使用Groovy类

我正在尝试从build.gradle文件中运行Groovy类。我遵循使用指南中的指示,但是出现错误。

构建文件为:

apply plugin: 'java'

apply plugin: 'groovy'

main {

java {

srcDirs = ["$projectDir/src/java"]

}

groovy {

srcDirs = ["$projectDir/src/groovy"]

}

}

dependencies {

compile 'org.codehaus.groovy:groovy-all:2.2.0', files(....)

}

task fooTask << {

groovyClass groovyClass = new groovyClass()

groovyClass.foo()

}

常规类很简单:

    public class groovyClass {

public void foo() {

println 'foo'

}

}

但是,当我尝试运行gradlew编译fooTask时,出现以下错误:

无法解析类groovyClass

知道为什么吗?

谢谢

回答:

buildSrc如果要从构建中引用它,则需要添加该类(而不是在简单的Exec任务中)。给定此目录结构:

|-buildSrc

| |- src

| |- main

| |- groovy

| |- GroovyClass.groovy

|- build.gradle

在哪里GroovyClass.groovy

class GroovyClass {

void foo() {

println 'foo'

}

}

并且build.gradle是:

apply plugin: 'groovy'

dependencies {

compile 'org.codehaus.groovy:groovy-all:2.2.1'

}

task fooTask << {

GroovyClass g = new GroovyClass()

g.foo()

}

然后,运行gradle fooTask给出输出:

$ gradle fooTask

:buildSrc:compileJava UP-TO-DATE

:buildSrc:compileGroovy UP-TO-DATE

:buildSrc:processResources UP-TO-DATE

:buildSrc:classes UP-TO-DATE

:buildSrc:jar UP-TO-DATE

:buildSrc:assemble UP-TO-DATE

:buildSrc:compileTestJava UP-TO-DATE

:buildSrc:compileTestGroovy UP-TO-DATE

:buildSrc:processTestResources UP-TO-DATE

:buildSrc:testClasses UP-TO-DATE

:buildSrc:test UP-TO-DATE

:buildSrc:check UP-TO-DATE

:buildSrc:build UP-TO-DATE

:fooTask

foo

BUILD SUCCESSFUL

Total time: 4.604 secs

以上是 在Gradle构建中使用Groovy类 的全部内容, 来源链接: utcz.com/qa/418525.html

回到顶部