作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个多项目gradle构建,该构建将某些源文件从父项目复制到构建目录,然后尝试覆盖其中一个复制文件中的 token 。一切正常,但文件最终为空。这是带有要替换的模板的文件片段:
---
# file: clients.yaml
#properties shared by all client machines
jmeter_version: "${jmeterVersion}"
jmeterVersion=3.0
/** This task copies files from pdo-shared */
task copyFromCommonProject(type:Copy, dependsOn: configurations.commonProjectContent){
from configurations.commonProjectContent.collect{ zipTree(it) }
into "$buildDir"
/*doLast {
updateAnsibleTokens.execute()
}*/
}
task updateAnsibleTokens(type: Copy, dependsOn: copyFromCommonProject) {
from "$buildDir/commons/ansible/group_vars/clients.yml"
into "$buildDir/commons/ansible/group_vars/"
expand(jmeterVersion: "$jmeterVersion")
}
gradle clean :tpcds-benchmark:updateAnsibleTokens
运行
doLast
部分已注释掉。我试图通过取消注释
gradle clean :tpcds-benchmark:copyFromCommonProject
部分并从第二个任务中删除
doLast
来将这两个任务作为
dependsOn: copyFromCommonProject
运行
expand(jmeterVersion: "$jmeterVersion")
行,我也会得到一个空文件。经过更多的测试,似乎在其自身上复制文件将生成一个空文件,因此也许我只是在做错了。如果仅更改目标目录,则具有的相同代码将起作用
最佳答案
基本上,我必须reread this manual section才能更好地了解生命周期。
在我的原始示例之后,这是两个可以按预期运行的任务。我开始怀疑的问题是,在从源进行实际复制之前,在配置周期中正在尝试复制和修改client.yml
。为第二个任务添加<<
可以确保在复制原始文件后在执行周期中进行修改
/** This task copies files from pdo-shared */
task copyFromCommonProject(type:Copy, dependsOn: configurations.commonProjectContent){
from configurations.commonProjectContent.collect{ zipTree(it) }
into "$buildDir"
}
task updateAnsibleTokens(type: Copy, dependsOn: copyFromCommonProject) << {
from "$buildDir/commons/ansible/group_vars/clients.yml"
into "$buildDir/commons/ansible/group_vars/"
expand(jmeterVersion: "$jmeterVersion")
}
关于file-io - Gradle副本创建一个空文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38463095/
我是一名优秀的程序员,十分优秀!