如何从命令行运行单个gradle任务

Tom*_*min 15 java gradle

在我的项目中,我在build.gradle中有几个任务.我希望这些任务在运行时是独立的.即我需要从命令行运行单个任务.但命令"gradle taskA"将运行我不想要的taskA和taskB.如何防止任务正在运行?

这是我正在做的事情的样本.

   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' }
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出. 在此输入图像描述

Tob*_*iSH 17

我想你错过的一点是你不在这里定义任务,但是你配置了任务.请查看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' 
}
Run Code Online (Sandbox Code Playgroud)

请注意"doLast"的快捷方式"<<".doLast步骤仅在执行任务时执行,而在解析gradle文件时将执行任务配置.

你打电话的时候

gradle runSchema
Run Code Online (Sandbox Code Playgroud)

您将看到"配置SQL任务",然后是"创建模式"输出.这意味着将运行runSQLTask但不会执行.

如果你打电话

gradle runSQL
Run Code Online (Sandbox Code Playgroud)

比你看,你会看到:

配置SQL-Task:runSchema创建模式:runsSQL执行SQL

执行runSchema是因为runSQL依赖于它.


Opa*_*pal 4

您可以使用-x选项或--exclude-task开关从任务图中排除任务。但提供可运行的示例是个好主意。