Я пытаюсь создать пользовательскую задачу/плагин (оба отказываются работать) для использования в моем скрипте построения градиента.Custom Task/Plugin in gradle
Я использую groovy plugin и хочу объявить Tasks/Plugins в отдельных файлах, а не внутри моего build.gradle.
Мой проект дерево выглядит следующим образом:
/project
.
|-gradle
|-src
|---main
|-----groovy
|-----java
|-----resources
|---test
|-----groovy
|-----java
|-----resources
|-build.gradle
То, что я пытался сделать, это создать свои задачи/Plugin классов внутри src/main/groovy
, а затем использовать их в моем build.gradle
.
Позвольте мне привести небольшой пример.
src/main/groovy/mypackage/
TestTask.groovy:
package org.gradle.mypackage
import org.gradle.api.DefaultTask
import org.gradle.api.tasks.TaskAction
public class TestTask extends DefaultTask {
@TaskAction
def doAction() {
}
}
build.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 (чистый, строить и т.д.), я получить следующую ошибку:
Error:(116, 0) Could not find property 'TestTask' on root project 'project'.
Что я делаю неправильно? Я попробовал import
Задача в build.gradle
с использованием import mypackage.TestTask
, но это тоже не сработало.
Мне кажется, что файлы groovy вообще не компилируются, а из того, что я читал в графе docs, следует позаботиться о компиляции и добавлении их в путь к классам.