构建Minecraft Forge 1.17.1 MDK时报Content-Length消息体提前结束错误
问题解决说明
你遇到的Premature end of Content-Length delimited message body报错属于依赖包下载过程中网络中断导致文件传输不完整,并非Minecraft Forge官方源本身故障,添加镜像后仍未生效大概率是镜像配置优先级错误或本地存在损坏的缓存文件。
解决步骤
- 调整镜像源优先级
需要同时修改build.gradle和settings.gradle两个文件的仓库配置,将镜像源放在所有官方仓库的最顶部,保证Gradle优先从镜像拉取依赖。示例配置参考:// build.gradle的repositories块 repositories { // 镜像源放在最前面 maven { url 'https://lss233.littleservice.cn/repositories/minecraft' } mavenCentral() // 官方源放在后面 maven { url 'https://maven.minecraftforge.net/' } } // settings.gradle的pluginManagement.repositories块也要同步添加镜像源 - 清理本地损坏缓存并强制刷新依赖
之前下载到一半的损坏包会存在Gradle本地缓存中,直接构建会优先使用损坏的文件,执行以下命令清理并刷新:
也可以手动删除本地Gradle缓存目录下对应两个依赖的文件夹:# Windows系统使用gradlew.bat代替./gradlew ./gradlew clean build --refresh-dependencies- 缓存根路径:
~/.gradle/caches/modules-2/files-2.1/ - 删除
com/ibm/icu/icu4j/66.1和it/unimi/dsi/fastutil/8.2.1两个目录即可
- 缓存根路径:
- 手动补全依赖(可选快速解决方案)
如果多次尝试依然下载失败,可以直接从可靠公共Maven源手动下载对应版本的jar包,放入项目根目录的libs文件夹,再在build.gradle的dependencies块添加以下配置即可直接使用本地jar:dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) // 其余原有依赖保持不变 } - 验证Java版本合规性
Forge 1.17.1要求必须使用JDK 16运行构建,请确认你的本地Java版本符合要求,版本不匹配也可能引发依赖解析异常。你可以运行java -version命令查看当前使用的Java版本。
内容的提问来源于stack exchange,提问作者Justin Zhang
相关产品推荐
相关产品推荐

