如何从命令行 运行 单个 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 依赖它。