MontrealDevOne :
This is how my project is set up
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");
}
}
It looks like subp1.GenerateTask is not available when I am building the task in build.gradle.
How do I let gradle know this task is available.
madhead :
That won't work.
You've placed your task in a place that Gradle is supposed to build. It means, that when Gradle reads your GenerateTask
it will be already started with some classes on a classpath and your GenerateTask
won't be there as it is not yet compiled.
What you have to do for Gradle to see your task is to put it in buildSrc
. I would also suggest your to read this perfect answer.
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=324838&siteId=1