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

时间:2015-01-08 10:05: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' }

这是我得到的输出。 enter image description here

2 个答案:

答案 0 :(得分:15)

我想你错过的一点就是你不在这里定义任务,而是你配置了任务。请查看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' 
}

请注意捷径&#39;&lt;&lt;&lt;&#为了#do;最后&#39;。 doLast步骤仅在执行任务时执行,而在解析gradle文件时将执行任务配置。

致电时

gradle runSchema

您将看到&#39;配置SQL-Task&#39; 以及&#39; Creating schema&#39; 输出。这意味着将运行runSQLTask但不会执行。

如果你打电话

gradle runSQL

比你看到的还要多:

配置SQL-Task :runSchema 创建架构 :runsSQL 执行SQL

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

答案 1 :(得分:4)

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