Gav*_*vin 5 clojure leiningen travis-ci clojars
我有一个简单的Clojure 1.9 项目.
它配置了一个最小的.travis.yml.
language: clojure
lein: 2.8.1
jdk:
- openjdk8
- openjdk9
- oraclejdk8
- oraclejdk9
Run Code Online (Sandbox Code Playgroud)
OpenJDK 8,OracleJDK 8和OracleJDK 9的构建成功.但是,OpenJDK 9在lein deps舞台上失败了.
无法从Clojars中检索到五件工件.他们是clojure-complete,clj-http和pedestal.service,pedestal.jetty和pedestal.service-tools.
这似乎是与证书相关的一些问题.我在下面列出了一些日志.
Could not find artifact clojure-complete:clojure-complete:jar:0.2.4 in central (https://repo1.maven.org/maven2/)
Could not transfer artifact clojure-complete:clojure-complete:jar:0.2.4 from/to clojars (https://repo.clojars.org/): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
...
Could not transfer artifact clojure-complete:clojure-complete:pom:0.2.4 from/to clojars (https://repo.clojars.org/): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
...
This could be due to a typo in :dependencies, file system permissions, or network issues.
If you are behind a proxy, try setting the 'http_proxy' environment variable.
Run Code Online (Sandbox Code Playgroud)
谢谢!
Travis CI问题跟踪器[ 1 ]和clojurians Slack 进行了讨论.
原因是OpenJDK 9没有附带签署Clojars证书的证书.
Christian Stein提到Travis CI将始终提供未打补丁的JDK安装.如有必要,用户需要对系统CA证书进行符号链接(原始单词).
这是更新的最小Travis CI配置.
它涉及在before_install阶段中手动对系统CA证书进行符号链接.
language: clojure
lein: 2.8.1
jdk:
- openjdk8
- oraclejdk8
- oraclejdk9
matrix:
include:
- jdk: openjdk9
before_install:
- rm "${JAVA_HOME}/lib/security/cacerts"
- ln -s /etc/ssl/certs/java/cacerts "${JAVA_HOME}/lib/security/cacerts"
Run Code Online (Sandbox Code Playgroud)
或者,您也可以使用自定义矩阵进行JDK安装.
jdk_install.shTravis 安装的所有OpenJDK版本都不会修补证书.因此,OpenJDK 10和11也会遇到同样的问题.
您可以使用智能放置的YAML锚点减少那些SDK版本的样板,如下例所示.
matrix:
include:
- jdk: openjdk9
before_install: &fix_certs
- rm "${JAVA_HOME}/lib/security/cacerts"
- ln -s /etc/ssl/certs/java/cacerts "${JAVA_HOME}/lib/security/cacerts"
- jdk: openjdk10
before_install: *fix_certs
- jdk: openjdk11
before_install: *fix_certs
Run Code Online (Sandbox Code Playgroud)