Java项目使用Gradle Shadow插件如何删除jar包多余文件仅保留eu目录与plugin.yml
解决方案
你可以通过在shadowJar配置块中添加文件内容过滤规则实现需求,完整配置如下:
shadowJar { // 保留原有依赖排除规则 dependencies { exclude(dependency("org.spigotmc:spigot-api:1.16.5-R0.1-SNAPSHOT")) exclude(dependency("org.jetbrains:annotations:22.0.0")) exclude(dependency("com.comphenix.protocol:ProtocolLib:4.7.0")) } // 新增文件过滤规则 exclude '**/*' // 先默认排除所有文件 include 'eu/**' // 保留eu目录下的所有层级内容 include 'plugin.yml' // 保留根目录的plugin.yml配置文件 }
规则说明
- 过滤规则优先级为:显式声明的
include规则优先级高于exclude规则,因此先全局排除所有内容后,再单独指定需要保留的文件/目录即可精准控制打包产物 - 如果后续需要新增其他需要保留的文件,只需新增对应
include规则即可,例如要保留根目录的config.yml就新增一行include 'config.yml'
内容的提问来源于stack exchange,提问作者KingsDev
相关产品推荐
相关产品推荐

