MontrealDevOne:
Isto é como o meu projeto está configurado
root
- settings.gradle
- build.gradle
- subp1
- subp2
settings.gradle:
rootProject.name = 'subs'
include subp1, subp2
build.gradle:
....
subprojects {
repositories {
jcenter()
mavenCentral()
}
task dev(type: org.gradle.api.DefaultTask) //OK!
task subdev(type: subp1.GenerateTask) //!!NOT OK!
}
subp1 / src / main / java / subp1 / GenerateTask.java:
package subp1;
import org.gradle.api.DefaultTask;
import org.gradle.api.tasks.TaskAction;
public class GenerateTask extends DefaultTask {
@TaskAction
public void generate() {
System.out.println("subp1");
}
}
Parece que subp1.GenerateTask não está disponível quando eu estou construindo a tarefa em build.gradle.
Como faço para dar a conhecer Gradle esta tarefa está disponível.
madhead:
Isso não vai funcionar.
Você colocou sua tarefa em um lugar que Gradle é suposto para construir. Isso significa que, quando Gradle lê o seu GenerateTask
vai ser já começou com algumas aulas em um classpath e sua GenerateTask
não vai estar lá, uma vez que ainda não é compilado.
O que você tem que fazer para Gradle para ver sua tarefa é colocá-lo em buildSrc
. Também gostaria de sugerir o seu ler este resposta perfeita .