如何从命令行 运行 单个 gradle 任务
How to run a single gradle task from command line
在我的项目中,我的 build.gradle 中有几个任务。我希望这些任务在 运行ning 时是独立的。即我需要 运行 从命令行执行单个任务。但是命令 "gradle taskA" 将 运行 taskA 和 taskB 我不想要。如何防止任务被 运行ning?。
这是我正在做的示例。
task runsSQL{
description 'run sql queries'
apply plugin: 'java'
apply plugin: 'groovy'
print 'Run SQL' }
task runSchema{
apply plugin: 'java'
apply plugin: 'groovy'
print 'Run Schema' }
这是我得到的输出。
您可以使用 -x
选项或 --exclude-task
开关从任务图中排除任务。但提供可运行的示例是个好主意。
我想您错过的一点是您没有在此处定义任务,而是配置了任务。查看 gradle 文档:http://www.gradle.org/docs/current/userguide/more_about_tasks.html.
你想要的是这样的:
task runsSQL (dependsOn: 'runSchema'){
description 'run sql queries'
println 'Configuring SQL-Task'
doLast() {
println "Executing SQL"
}
}
task runSchema << {
println 'Creating schema'
}
请注意 'doLast' 的快捷方式“<<”。 doLast步骤仅在执行任务时执行,而任务的配置将在解析gradle文件时执行。
当你打电话给
gradle runSchema
您将看到 'Configuring SQL-Task',然后是 'Creating schema' 输出。这意味着 运行SQL 任务将被配置但不会执行。
如果你打电话
gradle runSQL
你会看到:
配置SQL-任务
:运行架构
创建模式
:运行sSQL
执行 SQL
运行Schema 被执行,因为 运行SQL 依赖它。
在我的项目中,我的 build.gradle 中有几个任务。我希望这些任务在 运行ning 时是独立的。即我需要 运行 从命令行执行单个任务。但是命令 "gradle taskA" 将 运行 taskA 和 taskB 我不想要。如何防止任务被 运行ning?。
这是我正在做的示例。
task runsSQL{
description 'run sql queries'
apply plugin: 'java'
apply plugin: 'groovy'
print 'Run SQL' }
task runSchema{
apply plugin: 'java'
apply plugin: 'groovy'
print 'Run Schema' }
这是我得到的输出。
您可以使用 -x
选项或 --exclude-task
开关从任务图中排除任务。但提供可运行的示例是个好主意。
我想您错过的一点是您没有在此处定义任务,而是配置了任务。查看 gradle 文档:http://www.gradle.org/docs/current/userguide/more_about_tasks.html.
你想要的是这样的:
task runsSQL (dependsOn: 'runSchema'){
description 'run sql queries'
println 'Configuring SQL-Task'
doLast() {
println "Executing SQL"
}
}
task runSchema << {
println 'Creating schema'
}
请注意 'doLast' 的快捷方式“<<”。 doLast步骤仅在执行任务时执行,而任务的配置将在解析gradle文件时执行。
当你打电话给
gradle runSchema
您将看到 'Configuring SQL-Task',然后是 'Creating schema' 输出。这意味着 运行SQL 任务将被配置但不会执行。
如果你打电话
gradle runSQL
你会看到:
配置SQL-任务 :运行架构 创建模式 :运行sSQL 执行 SQL
运行Schema 被执行,因为 运行SQL 依赖它。