如何在Gradle的ShadowJar任务中重命名依赖内的SO文件?
在ShadowJar任务中重命名依赖文件的实现方法
完全可以在ShadowJar任务中实现这个需求,只需要在现有配置基础上添加文件重命名规则即可。修改后的Kotlin Gradle配置如下:
named<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar>("shadowJar") { archiveClassifier.set("") duplicatesStrategy = DuplicatesStrategy.EXCLUDE // 针对目标文件添加重命名逻辑 rename { filePath -> if (filePath == "linux/x64/org/lwjgl/liblwjgl.so") { "linux/x64/org/lwjgl/liblwjgl3.so" } else { filePath } } }
说明
ShadowJar任务提供的rename方法会遍历所有待打包的文件路径:
- 当检测到路径完全匹配
linux/x64/org/lwjgl/liblwjgl.so时,会将其替换为指定的新路径 - 其他文件的路径保持不变,正常打包到最终Jar包中
内容的提问来源于stack exchange,提问作者Wyvest
相关产品推荐
相关产品推荐

