在我的Gradle WAR版本中,我尝试用外部资源中的较新版本替换两个.js文件。
如果文件较新,我想替换我的" base" JS文件夹中的文件:
task downloadJs {
ant.mkdir(dir:"${buildDir}/js/")
ant.get(src:'http://external.url/js/file1.js', dest:"${buildDir}/js/file1.js", usetimestamp: true, ignoreerrors: true)
ant.get(src:'http://external.url/js/file2.js', dest:"${buildDir}/js/file2.js", usetimestamp: true, ignoreerrors: true)
}
war {
dependsOn donwloadJs
from("${buildDir}/js") {
include '*'
into('js')
}
}
但是这个配置会在战争中创建重复的.js文件。 我不想删除原始文件,以避免在下载失败时没有文件。
我怎么能告诉war复制配置覆盖文件?
duplicatesStrategy
似乎无法正常工作,它可以让我失败或留下重复,但不能覆盖。
答案 0 :(得分:0)
好吧,我自己找到了办法:
war {
dependsOn downloadJs
from("${buildDir}/js") {
include '*'
into('js')
}
exclude {
it.path.startsWith("js") && file("${buildDir}/js/${it.name}").exists()
}
}
关键是要添加复制新文件,并按照其他规则排除原件,但只删除已下载的原件,检查替换文件夹中是否存在相同的文件
有人用更干净的方式?