我想从build.gradle文件执行gradle build命令。
build.gradle文件
apply plugin: 'java'
apply plugin: 'application'
task me{
//Can we perform gradle build command here.
}
***问题:***我们能否在任务me中执行gradle build命令,就像我们在命令提示符下执行一样(随附屏幕截图)..?
注意:我使用的是windowsenv,请假设我在build.gradle文件中提供了所有其他语句
*。
我想执行这个任务 * 我 * 从命令提示符,它应该负责调用gradle build
命令。(附上截图)
3条答案
按热度按时间uklbhaso1#
是,如果将任务
me
转换为GradleBuild
类型的任务https://docs.gradle.org/current/dsl/org.gradle.api.tasks.GradleBuild.html
例如:
46qrfjad2#
您不能在Gradle构建中“调用”Gradle任务。
你可能会偶然发现每个Gradle任务都有一个方法
execute()
,但这是一个纯粹的内部方法,任何构建脚本不得使用。使用它将无法正常工作。它不会确保任务只运行一次,也不会确保依赖项任务在之前运行等等,只是 * 不要 * 使用它。你的代码片段太大了,我现在不想解释它来理解你到底想做什么,但是如果你想从另一个Gradle任务“调用”一个Gradle任务,你的逻辑是虚假的,应该改变。如果你想在另一个Gradle任务运行之前或之后运行一个Gradle任务,唯一支持的方式是使用
dependsOn
(before)或finalizedBy
(after),并且您不能在任务的执行阶段设置这些属性,而只能在配置阶段设置。还有一种方法可以从构建脚本调用Gradle任务,但这是通过使用
GradleBuild
类型的任务,它将启动您指定的项目的一个完整的新的和单独的构建,这通常不是您真正想要做的动作。e4eetjau3#
我使用的方法是直接执行Gradle控制台命令。我更喜欢它,因为它更通用。你可以这样做:
另一种方法是使用finalizedBy()方法,它将在第一个任务完成后执行特定的任务。您可以这样使用它: