Gradle:在配置和执行阶段之间拆分复制任务
我在子项目目录中的build.gradle中有一个任务:Gradle:在配置和执行阶段之间拆分复制任务,gradle,build.gradle,Gradle,Build.gradle,我在子项目目录中的build.gradle中有一个任务: task copyResources { copy { from 'cli' into 'build/cli' } copy { from 'module' into 'build/module' } } 它的目的是将两个文件夹从projectdir复制到Gradle的build文件夹。但由于目标文件夹被称为“构建”,其他任务的执行可能会
task copyResources {
copy {
from 'cli'
into 'build/cli'
}
copy {
from 'module'
into 'build/module'
}
}
它的目的是将两个文件夹从projectdir复制到Gradle的build文件夹。但由于目标文件夹被称为“构建”,其他任务的执行可能会引入一些奇怪的行为,例如
当我尝试将此任务移动到执行阶段时,它不会运行:
正在跳过任务“:copyResources”,因为它没有任何操作
据我所知,这是正确的行为,因为复制任务的源和目标必须在配置阶段设置
是否可以推迟此任务的执行,使其在“生成”任务之后运行?或者我必须创建不同的任务,使用一些普通Java/Groovy代码,而不使用Gradle的拷贝,并且只在执行阶段运行它?按照定义任务的方式,拷贝是作为配置时间的一部分进行的。如果您想将其移动到执行时,可以将其包装成如下所示的doLast块
task copyResources {
doLast {
copy {
from 'cli'
into 'build/cli'
}
copy {
from 'module'
into 'build/module'
}
}
}
以下是一些有助于理解执行与配置时间的文档: