我需要遍历runtime dependencies
列表,然后从jar中提取具有各自json
的文件夹中的jar name
文件。
我已经尝试了下面的代码,但是它创建了一个读取的最后一个jar的名称的文件夹,并将所有json
文件放入其中,并维护了jar root
的路径。
task copyJsonToQrelease(type: Copy) {
configurations.runtime.each { File f ->
from zipTree(f)
include "**/*.json"
into "${viewRoot}/Qrelease/JsonResources/"+f.getName()
includeEmptyDirs = false
}
}
result : Qrelease\JsonResources\netty-common-4.1.16.Final.jar\release resources\DummyService.json
expected result: Qrelease\JsonResources\MyJarName\DummyService.json
最佳答案
jar文件的名称是netty-common-4.1.16.Final.jar
。
因此,MyJarName
部分应该正确,对吗?release-resources\DymmyService.json
是json文件的名称。
因此,您想rename json文件。
这适用于Windows(未经测试):
rename(/.*\\(.+json)/, '$1')
当心-此正则表达式特定于操作系统。更好:构建正则表达式操作系统所依赖的。
关于gradle - 从gradle运行时依赖项jar中提取json文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58388203/