当前位置: 首页 > 知识库问答 >
问题:

“配置闭包”中的复制行为发生在“执行阶段”,而不是“配置阶段”

丁弘新
2023-03-14

我目前正在学习Gradle。

task simpleCopy(type: Copy){
    from 'source.xml'
    into 'destinationFolder'
}

但是我发现,当我在命令行运行gradle时,复制不会发生。只有当显式执行simpleTask任务时(即通过在命令行运行gradle simpleTask)才会发生复制。所以上面的代码实际上行为与

task simpleCopy(type: Copy){
    doLast {
        from 'source.xml'
        into 'destinationFolder'
    }
}

我对配置阶段和配置闭包的理解是否不正确?还是我漏掉了一些信息?

共有1个答案

易英奕
2023-03-14

在配置阶段,配置了复制任务,即设置了源和目标位置(这是配置闭包所做的全部工作),但尚未完成复制本身。

只有在执行任务时才会发生复制。

 类似资料:
  • 我有一个Gradle任务,简单地将文件从一个文件夹复制到另一个文件夹。 当在配置阶段调用copy'from''into'方法时,它可以工作,但当在执行阶段调用它们时,它就不工作了。 这样做是有效的 gradle copyServerConfig 如果我把它放在doFirst{}块中,也会发生同样的事情。 我不明白的另一件事是: gradle task1 但如果我改成这样: gradle task1

  • 我是格雷德尔的新手。我正在尝试使用一个插件,但我想在执行过程中更改插件的默认值 我希望在执行过程中使用project.version中存在的版本值。但看起来该值是在执行任何任务之前设置的。有什么想法吗?

  • 这是我的: 我希望mkdir在配置阶段运行,即我的目录结构应该形成,但没有发生。 然而,我得到了以下输出: 现在,在上面这行的输出打印中

  • 问题内容: 我正在开发Angular Web应用程序的i18n部分,我想在配置阶段使用angular-translate。 我定义了一些我想翻译的数据: 这是我的配置声明: 我得到的错误是经典 错误 : 错误:[$ injector:unpr]未知提供程序:$ filter 我知道我不能在配置阶段使用服务,只能在提供程序中使用,但是我的问题有解决方案吗? 编辑: 我的问题已经解决,方法是将键 ‘t

  • 要想使用体验好,进阶配置少不了。(单押) 更换国内源 使用pkg update 更新一下的时候发现默认的官方源网速有点慢,在这个喧嚣浮躁的时代,我们难以静下心等待,这个时候就得更换成国内的Termux清华大学源了,加快软件包下载速度。 方法一:自动替换(推荐) 可以使用如下命令自动替换官方源为 TUNA 镜像源 pkg update 卡住的话多按几次回车 不要傻乎乎的等Bash sed -i 's

  • 你有时可能想实现: 对语言应用自定义 loader string,而不是让 vue-loader 去推断; 覆盖默认语言的内置 loader 配置。 使用自定义 loader 预处理或后处理特定语言块。 为此,请指定 vue-loader 的 loaders 选项: 注意 preLoaders 和 postLoaders 只在 10.3.0+ 版本支持 module.exports = { /