如何从命令行运行单个 gradle 任务
Posted
技术标签:
【中文标题】如何从命令行运行单个 gradle 任务【英文标题】:How to run a single gradle task from command line 【发布时间】:2015-03-06 09:47:35 【问题描述】:在我的项目中,我的 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'
这是我得到的输出。
【问题讨论】:
解决方案:***.com/questions/23546286/… 我看到你运行了gradle
命令。我在我的电脑上找不到gradle.exe
。我是 android 和 Gradle 构建系统的新手。我在哪里可以找到 gradle 可执行文件?
@SaeedNamati 如果您没有安装 Gradle,请使用 gradlew
(大多数 Gradle 项目包含包装器 gradlew
),否则您可以从 the Gradle website 安装 Gradle。
您不需要将每个插件单独应用于每个任务。只需在文件开头执行apply plugin: 'java'
和apply plugin: 'groovy'
即可。
【参考方案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”的快捷方式“
当你打电话时
gradle runSchema
您将看到 “配置 SQL 任务”,然后是 “正在创建架构” 输出。这意味着 runSQLTask 将被配置但不会被执行。
如果你打电话
gradle runSQL
你会看到:
配置 SQL 任务 :runSchema 创建架构 :运行SQL 执行SQL
runSchema 被执行是因为 runSQL 依赖于它。
【讨论】:
是的。这回答了问题。谢谢【参考方案2】:您可以使用-x
选项或--exclude-task
开关从任务图中排除任务。但最好提供可运行的示例。
【讨论】:
gradle taskA -x taskB 将同时运行这两个任务。 好的,这就是我告诉你提供一个例子的原因——现在这是一个相当抽象的讨论。 好的,但是没有定义taskA
和 taskB
。现在很难重现错误。您要运行哪些任务?此外,您没有将 actions 添加到任务中。因此闭包中的代码在配置时间运行。
runSQL 和 runSchema 是我没有 taskA 和 taskB 的任务(为了简单起见,我只是选择了这些名称)。我没有添加动作,因为它们非常大。但我可以说它是关于从文件中读取一些 sql 查询并根据某些条件执行它。此外,这两个任务都接受来自命令行的参数。
嗯..您提供的脚本似乎很奇怪:/请提供一个简单但可运行的脚本来重现问题。以上是关于如何从命令行运行单个 gradle 任务的主要内容,如果未能解决你的问题,请参考以下文章