如何从命令行运行单个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' } 

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

您可以使用-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 

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

如果你打电话

 gradle runSQL 

比你看,你会看到:

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

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