在我的项目中,我在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' }
这是我得到的输出。
答案 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
切换从任务图中排除任务。但提供可运行的示例是个好主意。