gradle - 如何仅在build.gradle中执行特定任务?

标签 gradle build.gradle gradle-plugin gradlew

build.gradle是:

task copy(type: Copy, group: "Custom", description: "Copies sources to the dest directory") {
    from "src"
    into "dest"
    println "copy"
}

task hello {
    println "hello"
}

当我尝试./gradlew copy时,copyhello都被执行。输出如下:
> Configure project :
copy
hello

如何只执行copy

最佳答案

在您的示例中,仅执行copy任务。但是,两者都已配置。

Gradle构建在构建生命周期中具有三个不同的阶段:

  • 初始化阶段
  • 配置阶段
  • 执行阶段

  • 默认情况下,Gradle会在启动时配置所有任务,尽管可以推迟许多类型的配置(延迟配置)。

    您在println任务中拥有的hello语句是配置的一部分,因此无论您打算执行什么任务,都可以看到它。您还可以在> Configure project : header 下的输出中看到。

    如果只想在实际执行时打印“hello”,则将其移动到doLast块中,如下所示:
    task hello {
        doLast {
            println "hello"
        }
    }
    

    关于gradle - 如何仅在build.gradle中执行特定任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61475607/

    相关文章:

    java - 缺少 build.gradle 依赖项

    android - 访问远程 gradle 依赖

    android - 将多种产品 flavor 与 flavor 维度组合时,文件 google-services.json 丢失

    android - 如何为 Android Studio 中的单独模块生成签名的 APK?

    android - 什么是 gradle 组、模块和 Artifact ?

    gradle - 在 Gradle 构建中启动 Gretty 时出现 NoClassDefFoundError

    java - 在 Google App Engine 中部署 Spring boot gradle 应用

    gradle - 从gradle运行时依赖项jar中提取json文件

    gradle - 以编程方式为Jar任务添加依赖项

    android - 由于gradle问题,如何修复 “Unable to load class ' Dagger 。