Ligar subprojeto Gradle a tarefa

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 GenerateTaskvai ser já começou com algumas aulas em um classpath e sua GenerateTasknã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 .

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=332089&siteId=1
Recomendado
Clasificación