将任务依赖项添加到 Gradle 中的现有插件任务?
Add Task dependency to existing Plugin Task in Gradle?
我在我的 build.gradle
文件中包含第二个 gradle 文件 my.gradle
。
my.gradle
的内容是:
申请插件:MyPlugin
class MyPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.tasks.create(name: "myTask", type: MyTaskClass) {
}
}
}
在我的 build.gradle
中,我设置在顶部:
apply from: 'myPlugin.gradle'
现在我想在 build.gradle
中设置任务依赖关系:
tasks.myPlugin.myTask.dependsOn += someOtherTask
构建时出现以下错误:
> Could not find property 'myPlugin' on task set.
如何从 build.gradle
中的 myPlugin
访问 myTask
?
编辑:我试图确保 someTask 在 myTask 之后运行。我尝试这样做:
taskX.finalizedBy taskY
就我而言:
tasks.myPlugin.myTask.finalizedBy someOtherTask
但是前者不行。
如果您正确地包含了您的插件,您应该会看到您的任务。例如,如果您包含 java 插件和 运行
gradle 任务 --all
您应该会看到包含了 compileJava。你的也一样,运行 gradle tasks --all
。您应该能够将其引用为 tasks.myTask 或 tasks['myTask']
以下脚本将完成这项工作:
my.gradle:
apply plugin: MyPlugin
class MyPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.tasks.create(name: "myTask", type: Copy) {
}
}
}
build.gradle:
apply from: 'my.gradle'
task someOtherTask << {
println 'doLast'
}
project.tasks.myTask.dependsOn(someOtherTask)
我在我的 build.gradle
文件中包含第二个 gradle 文件 my.gradle
。
my.gradle
的内容是:
申请插件:MyPlugin
class MyPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.tasks.create(name: "myTask", type: MyTaskClass) {
}
}
}
在我的 build.gradle
中,我设置在顶部:
apply from: 'myPlugin.gradle'
现在我想在 build.gradle
中设置任务依赖关系:
tasks.myPlugin.myTask.dependsOn += someOtherTask
构建时出现以下错误:
> Could not find property 'myPlugin' on task set.
如何从 build.gradle
中的 myPlugin
访问 myTask
?
编辑:我试图确保 someTask 在 myTask 之后运行。我尝试这样做:
taskX.finalizedBy taskY
就我而言:
tasks.myPlugin.myTask.finalizedBy someOtherTask
但是前者不行。
如果您正确地包含了您的插件,您应该会看到您的任务。例如,如果您包含 java 插件和 运行
gradle 任务 --all
您应该会看到包含了 compileJava。你的也一样,运行 gradle tasks --all
。您应该能够将其引用为 tasks.myTask 或 tasks['myTask']
以下脚本将完成这项工作:
my.gradle:
apply plugin: MyPlugin
class MyPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
project.tasks.create(name: "myTask", type: Copy) {
}
}
}
build.gradle:
apply from: 'my.gradle'
task someOtherTask << {
println 'doLast'
}
project.tasks.myTask.dependsOn(someOtherTask)