我正在尝试创建一个自定义任务/插件(都拒绝工作)以在我的 gradle 构建脚本中使用。
我正在使用 groovy 插件,并希望在单独的文件中声明任务/插件,而不是在我的 build.gradle 中。
我的项目树如下:
/project
.
|-gradle
|-src
|---main
|-----groovy
|-----java
|-----resources
|---test
|-----groovy
|-----java
|-----resources
|-build.gradle
我试图做的是在里面创建我的任务/插件类src/main/groovy
,然后在我的build.gradle
.
让我举一个小例子。
src/main/groovy/mypackage/
测试任务.groovy:
package org.gradle.mypackage
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction
public class TestTask extends DefaultTask {
@TaskAction
def doAction() {
}
}
构建.gradle
plugins {
id 'groovy'
}
sourceCompatibility = 1.7
repositories {
mavenCentral()
}
dependencies {
compile(
localGroovy(),
gradleApi()
)
testCompile(
[ group: 'junit', name: 'junit', version: '4.11' ]
)
}
task testTask(type: TestTask)
当我尝试使用我的 gradle.build (清理、构建等)做任何事情时,我收到以下错误:
错误:(116, 0) 在根项目 'project' 上找不到属性 'TestTask'。
我究竟做错了什么?我尝试了使用中import
的任务,但这也不起作用。build.gradle
import mypackage.TestTask
在我看来,groovy 文件根本无法编译,而我在docs gradle 中阅读的内容应该负责编译并将它们添加到类路径中。