Travis CI构建失败求助:切换oraclejdk版本后仍报错
解决Travis CI中Oracle JDK版本构建失败的问题
问题根源分析
你遇到的两个报错其实指向同一个核心问题:
- 第一个报错要求JDK版本在9-14之间,是因为你使用的
xenial分发版下,Travis CI已经停止支持Oracle JDK 8的默认安装通道; - 第二个报错(退出码8)则是因为Oracle已不再公开提供JDK 9和10的官方下载链接,Travis默认的
install-jdk.sh脚本无法获取到对应安装包,导致构建中断。
另外注意到你提供的配置文件里写的是jdk: oraclejdk9,这和你提到的切换到oraclejdk10的操作不一致,也是潜在的问题点。
解决方案
推荐改用OpenJDK替代Oracle JDK,因为OpenJDK在Travis CI中支持更稳定,且不存在下载权限限制。具体修改步骤如下:
修改Travis配置文件的
jdk字段:
将原来的jdk: oraclejdk9替换为长期支持的OpenJDK版本:jdk: openjdk11OpenJDK 11完全覆盖你需要的9-14版本范围,兼容性和维护性都更有保障。
(可选,不推荐)如果项目必须使用Oracle JDK 8,可以尝试切换到旧版分发版
trusty(虽然trusty已停止维护,但仍能支持Oracle JDK 8的安装):dist: trusty jdk: oraclejdk8但这个方案后续可能会出现更多兼容性隐患,建议优先选择OpenJDK方案。
验证修改效果:
保存配置后重新触发构建,应该能顺利完成JDK安装和后续的Scala测试流程。
额外优化建议
你的缓存配置已经很完善了,还可以在before_cache步骤中添加清理sbt冗余缓存文件的命令,进一步提升缓存效率:
- find $HOME/.sbt -name "*.ivy" -print -delete
内容的提问来源于stack exchange,提问作者David Geirola
相关产品推荐
相关产品推荐

