【问题标题】:how to execute 'gradle build' command from gradle.build script如何从 gradle.build 脚本执行“gradle build”命令
【发布时间】:2017-11-28 13:37:47
【问题描述】:

我想从 build.gradle 文件中执行 gradle build 命令。

build.gradle 文件

apply plugin: 'java'
apply plugin: 'application'
task me{
   //Can we perform gradle build command here.
       }

问题: 我们可以在任务 me 中执行 gradle build 命令吗,就像我们在命令提示符下执行的一样(附截图)..?

注意:我使用的是 windows 环境,请假设我在 build.gradle 文件中提供了所有其他语句。 我可以通过执行从命令提示符构建

.

我想从命令提示符执行这个任务me,它应该负责调用gradle build命令。(附截图)

【问题讨论】:

    标签: gradle groovy build.gradle


    【解决方案1】:

    是的,如果您将任务 me 设置为类型为 GradleBuild 的任务

    https://docs.gradle.org/current/dsl/org.gradle.api.tasks.GradleBuild.html

    例如

    task me(type: GradleBuild){
        buildFile 'mybuild.gradle' //defaults to build.gradle so not needed
        dir 'someDir'
        tasks 'clean', 'build'
    }
    

    【讨论】:

      【解决方案2】:

      您不能在 Gradle 构建中“调用”Gradle 任务。

      您可能会偶然发现每个 Gradle 任务都有的方法 execute(),但这是一个纯粹的内部方法,不得被任何构建脚本使用。使用它将无法正常工作。它不会确保任务只运行一次,它不会确保依赖任务之前运行等等等等,只是不要使用它。

      你的代码 sn-p 太大了,我现在想解释它以了解你想要做什么,但是如果你想从另一个 Gradle 任务中“调用”一个 Gradle 任务,你的逻辑是虚假的,应该被改变。如果您想在运行另一个 Gradle 任务之前或之后运行 Gradle 任务,唯一受支持的方法是使用 dependsOn(之前)或 finalizedBy(之后)并且您不能设置这些任务执行阶段的属性,但仅在配置阶段。

      嗯,还有另一种方法可以从构建脚本中调用 Gradle 任务,但这是通过使用类型为 GradleBuild 的任务来启动您指定的项目的全新且单独的构建,这是最常见的不是你真正想做的动作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-07
        相关资源
        最近更新 更多