我正在使用 expand 方法复制文件并替换其中的字符串。
问题是当 expand 的值改变时,gradle 仍然将目标文件视为最新的。我必须清理和构建文件才能获得正确的值。
这是复制任务:
task copyProductionConfig(type: Copy) {
from 'source'
include 'config.properties'
into 'build/war/WEB-INF/config'
expand([
databaseHostname: 'db.company.com',
version: versionId,
buildNumber: (int)(Math.random() * 1000),
date: new Date()
])
}
Run Code Online (Sandbox Code Playgroud)
即使版本更改,gradle 仍然将结果文件视为最新的。
这确实很可惜。但它应该很容易通过做
task copyProductionConfig(type: Copy) {
from 'source'
include 'config.properties'
into 'build/war/WEB-INF/config'
def tokens = [
databaseHostname: 'db.company.com',
version: versionId,
buildNumber: (int)(Math.random() * 1000),
date: new Date()
]
expand(tokens)
inputs.properties(tokens)
}
Run Code Online (Sandbox Code Playgroud)
这样,令牌被添加到任务的输入中,如果令牌自上次执行以来发生了变化,则任务将因此重新执行。
归档时间: |
|
查看次数: |
766 次 |
最近记录: |