Par*_*axG 2 task gradle build.gradle
我有一个复制任务,试图复制'dependsOn'任务中提取的文件.目标文件夹包含从属性文件中检索的时间戳.
task copyFilesToBuild(type: Copy, dependsOn:unzipExtFile) {
def tmpTimestampFile = file("$buildDir/tmp/timestamp.properties")
if (tmpTimestampFile.exists()) {
stampProp = new Properties()
stampProp.load(new FileInputStream(tmpTimestampFile))
def timestampFromFile=stampProp.getProperty('propfileTimestamp')
def unzippedExtFilesDir = file("$buildDir/tmp/unzipped/static/js/app")
def appBuildDir = file("$buildDir/apptmp/war/app/app_$timestampFromFile/sub")
from unzippedExtFilesDir
into appBuildDir
}
}
Run Code Online (Sandbox Code Playgroud)
第一次通过我的构建(在干净之后)它说'UP TO DATE'(调试输出说它正在跳过任务,因为它没有源文件.)
我尝试添加闭包来推迟评估(来自{unzippedExtFilesDir})并尝试将任务的主体放在doFirst中,但都没有任何效果.我也尝试直接在'from'语句中使用dependsOn任务名称(unzipExtFile),但这也没有用.
第二次构建运行时,这个任务就会运行,所以它似乎是配置和执行之间的时间问题,但我的想法已经不多了.欢迎大家提出意见.
代码在配置时读取时间戳,在任何任务运行之前.(您可以通过添加println语句来查看.)因为此时不存在时间戳文件(特别是在第一次运行时),所以没有from ...配置源位置(),并且任务被认为是最新的,因为没有任何内容复印.将整个时间戳逻辑放入intoblock(into { ...; appBuildDir })应该可以解决问题.
| 归档时间: |
|
| 查看次数: |
1713 次 |
| 最近记录: |