gpt4 book ai didi

gradle - 在 Gradle 中将文件从一个 Zip 文件复制到另一个文件中

转载 作者:行者123 更新时间:2023-12-02 08:30:32 25 4
gpt4 key购买 nike

我们正在努力从 Maven 迁移到 Gradle。不幸的是,我们仍然有一些 war 覆盖层需要处理。

作为一种解决方法,我尝试将一个 war 文件的内容复制到另一个文件中。

这是我到目前为止所拥有的:

task overlayWars (dependsOn: war) << {
// Get the source war files to copy the contents from...
def dependencyWars = configurations.runtime.filter { it.name.endsWith ('.war') }
dependencyWars.each { dependentWar ->

// Get the products, ie the target war file...
war.outputs.files.each { product ->
println "Copying $dependentWar contents into $product"
copy {
from { zipTree (dependentWar) }
into { zipTree (product)} // this seems to be the problem
include 'WEB-INF/classes/**/*.class'
include 'WEB-INF/jsp/**/*.jsp'
}
}
}
}

into { zipTree (product)} 是一个文件(如 file ('tmp/whatever'))时,效果很好。当指定另一个 zip 文件(目标 war 文件)时,它会失败并显示错误:

Converting class org.gradle.api.internal.file.collections.FileTreeAdapter to File using toString() method has been deprecated and is scheduled to be removed in Gradle 2.0. Please use java.io.File, java.lang.String, java.net.URL, or java.net.URI instead.

如果有人对此有具体建议,或者有更好的“覆盖” war 文件的方法,我将非常感激!

最佳答案

在寻找了几个不同的角度之后,我最终得到了这个:

war {
configurations.runtime.filter { it.name.endsWith ('.war') }.each {
from zipTree (it).matching {
include 'WEB-INF/classes/**/*.class'
include 'WEB-INF/jsp/**/*.jsp'
include 'images/**'
}
}
}

基本上,我只是在产品中包含任何 .war 依赖项的过滤内容。作为对标准 war 任务的改变,依赖树保持干净。到目前为止,它似乎对我们有用......

关于gradle - 在 Gradle 中将文件从一个 Zip 文件复制到另一个文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17843956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com