我使用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()
])
}
即使更改版本,gradle仍会将结果文件视为最新版本。
答案 0 :(得分:4)
这确实很可惜。但是应该通过
轻松解决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)
}
这样,令牌被添加到任务的输入中,并且如果令牌自上次执行以来已经改变,则重新执行任务。