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

2022-09-01 21:09:49

在我的项目中,我的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


答案 1

我想你错过的一点是,你没有在这里定义任务,但你配置了任务。看看 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

您将看到“配置 SQL 任务”,然后是“创建架构”输出。这意味着 runSQLTask 将被配置,但不会执行。

如果您致电

gradle runSQL

比你看到的:

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

runSchema 之所以执行,是因为 runSQL 依赖于它。


答案 2

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


推荐