Travis CI 无法安装 openjdk11

Travis CI couldn't install openjdk11

我在 Travis 中安装 openjdk11 时遇到问题 CI。

这是我遇到的错误

Installing openjdk11
$ export JAVA_HOME=~/openjdk11
$ export PATH="$JAVA_HOME/bin:$PATH"
$ ~/bin/install-jdk.sh --target "/home/travis/openjdk11" --workspace "/home/travis/.cache/install-jdk" --feature "11" --license "GPL" --cacerts
install-jdk.sh 2019-04-18
The command "~/bin/install-jdk.sh --target "/home/travis/openjdk11" --workspace "/home/travis/.cache/install-jdk" --feature "11" --license "GPL" --cacerts" failed and exited with 51 during .
Your build has been stopped.

.travis.yml 文件:

language: java
jdk: openjdk11
cache:
  directories:
    - "$HOME/.m2/repository"

似乎是 download.java.net 的 TLS 证书错误。 download.java.net 公开的当前 TLS 证书无效:它用于 download.oracle.com

51 return 代码由 curl 下载命令 return 编辑。

您可以下载 install-jdk.sh 脚本:

curl -o /tmp/install-jdk.sh -L https://raw.githubusercontent.com/sormuras/bach/master/install-jdk.sh

然后运行它:

bash -x /tmp/install-jdk.sh --target "/home/travis/openjdk11" --workspace "/home/travis/.cache/install-jdk" --feature "11" --license "GPL" --cacerts

失败的命令是:

curl -o /dev/null --silent --head --write-out '%{http_code}' https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_osx-x64_bin.tar.gz

使用 51 return 代码

可能 Oracle 必须修复他们的 TLS 证书,或者 Travis 必须以某种方式修复它。

与此同时,我们通过将 dist: xenial 添加到我们的 Travis 配置中获得了一些运气,请参阅:https://travis-ci.community/t/install-of-openjdk11-is-failing-again/3061/16

另一种解决方案似乎是将 oraclejdk11 添加到 Travis 配置中的 jdk 列表中。

我不会特别说这些是实际的解决方案,但暂时只是解决方法。

为避免此问题,请在您的 .travis.yml 配置文件中尝试这样的操作:

language: java
dist: xenial
sudo: required

jdk:
  - openjdk11