如何在Gradle中排除目录?解决README文件致构建包过大问题
Gradle构建排除指定资源无效的解决办法
你的配置没生效的核心问题是路径匹配错误,以下是几种可行的修正方案:
方案1:修正srcDir对应的排除路径
你设置了srcDir 'src',意味着资源路径是基于src目录计算的,所以排除路径要对应这个基准目录:
sourceSets { main { resources { srcDir 'src' // 相对于src目录的路径,对应项目里的src/main/resources/assets/playtimer/github exclude("main/resources/assets/playtimer/github/**") // 或者更简化的写法,因为srcDir是src,直接写资源目录内的相对路径也可以 // exclude("assets/playtimer/github/**") } } }
方案2:使用默认资源目录规则排除
如果不需要自定义srcDir,Gradle默认的main资源目录就是src/main/resources,直接排除该目录下的目标路径更直观:
sourceSets { main { resources { exclude("assets/playtimer/github/**") } } }
方案3:直接在打包任务中排除
如果上面的方法仍不生效,可以绕过sourceSets,直接在打包任务(比如jar)里添加排除规则,确保这些文件不会被打包:
jar { exclude("assets/playtimer/github/**") }
验证方式
构建完成后,你可以通过以下方式确认是否生效:
- 解压生成的jar包,检查是否存在
assets/playtimer/github目录 - 执行命令:
jar tf 你的项目名称.jar,查看输出中是否包含目标路径的文件
内容的提问来源于stack exchange,提问作者yellowyears
相关产品推荐
相关产品推荐

