这是我的项目的设置方式
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");
}
}
当我在build.gradle中构建任务时,看起来subp1.GenerateTask不可用。
如何让gradle知道此任务可用。
答案 0 :(得分:3)
那行不通。
您已将任务放置在Gradle应该建立的地方。这意味着,当Gradle读取您的GenerateTask
时,它将已经从类路径上的某些类开始,并且您的GenerateTask
将不会在那里,因为尚未编译。
要让Gradle看到您的任务,您要做的就是将其放在buildSrc
中。我也建议您阅读perfect answer。