gpt4 book ai didi

Gradle:在配置和执行阶段之间拆分复制任务

转载 作者:行者123 更新时间:2023-12-03 03:40:20 25 4
gpt4 key购买 nike

我在子项目目录的 build.gradle 中有一个任务:

task copyResources {

copy {
from 'cli'
into 'build/cli'
}

copy {
from 'module'
into 'build/module'
}
}

目的是将项目目录中的两个文件夹复制到 Gradle 的构建文件夹中。但是由于目标文件夹称为“构建”,执行其他任务可能会引入一些奇怪的行为(例如,干净)。

当我尝试将此任务移至执行阶段时,它没有运行:

Skipping task ':copyResources' as it has no actions.

据我所知,这是正确的行为,因为必须在配置阶段设置复制任务的源和目标。

是否可以推迟执行此任务,使其在“构建”任务之后运行?或者我必须创建不同的任务,使用一些普通的 Java/Groovy 代码,而不使用 Gradle 的 copy(),并且只在执行阶段运行它?

最佳答案

按照您定义任务的方式,复制是作为配置时间的一部分发生的。如果你想将它移动到执行时间,你可以将它包装到一个 doLast block 中,如下所示。

task copyResources {
doLast {
copy {
from 'cli'
into 'build/cli'
}

copy {
from 'module'
into 'build/module'
}
}
}

以下是一些可能有助于理解执行与配置时间的文档:https://docs.gradle.org/current/userguide/build_lifecycle.html

关于Gradle:在配置和执行阶段之间拆分复制任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38895361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com