Mac*_*ich 2 gradle build.gradle
我在我的 build.gradle 子项目目录中有一个任务:
task copyResources {
copy {
from 'cli'
into 'build/cli'
}
copy {
from 'module'
into 'build/module'
}
}
Run Code Online (Sandbox Code Playgroud)
它的目的是将两个文件夹从项目目录复制到 Gradle 的构建文件夹。但是由于目标文件夹称为“构建”,因此其他任务的执行可能会引入一些奇怪的行为(例如,干净)。
当我尝试将此任务移至执行阶段时,它不会运行:
跳过任务 ':copyResources',因为它没有任何操作。
据我所知,这是正确的行为,因为必须在配置阶段设置复制任务的源和目标。
是否可以推迟此任务的执行,使其在“构建”任务之后运行?或者我必须使用一些普通的 Java/Groovy 代码创建不同的任务,而不使用 Gradle 的 copy(),并且只在执行阶段运行它?
他们定义任务的方式,复制是作为配置时间的一部分发生的。如果你想把它移到执行时间,你可以把它包装成一个doLast像下面这样的块。
task copyResources {
doLast {
copy {
from 'cli'
into 'build/cli'
}
copy {
from 'module'
into 'build/module'
}
}
}
Run Code Online (Sandbox Code Playgroud)
以下是一些可能有助于理解执行与配置时间的文档:https : //docs.gradle.org/current/userguide/build_lifecycle.html
| 归档时间: |
|
| 查看次数: |
1848 次 |
| 最近记录: |