gradle - 从gradle运行时依赖项jar中提取json文件

标签 gradle gradle-plugin

我需要遍历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/

相关文章:

java - 使用 SpringBootTest 注解

java - 来自旧手机 API 18 的可绘制资源的 Android Resources$NotFoundException

java - 如何使用 Quarkus-Gradle-Plugin 构建 uberJar

java - 我将如何覆盖独立项目中另一个插件提供的任务? Gradle

gradle - 仅通过gradle下载节点8.17.0(如果系统中未安装该节点)

java - Google Cloud KMS java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String; CLjava/lang/Object;)V

android - Android Clean build Gradle任务

jakarta-ee - Arquillian + Wildfly + Gradle警告

android-studio - 如何删除android studio中的黄色 "project sync succeeded"栏?

kotlin - 如何在Gradle插件中表达项目依赖关系?