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