非法选项:-cacerts for keytool in gitlab-ci with gradle:jdk8

Illegal option: -cacerts for keytool in gitlab-ci with gradle:jdk8

我在gitlab中使用了下配置-ci.yml :

image: gradle:jdk11
stages:
  - build
  - publish
before_script:
  - wget -P /tmp http://www.some.com/SOME.crt
 - keytool -importcert -trustcacerts -file /tmp/SOME.crt -cacerts -alias "Some" -storepass changeit -noprompt

一切正常。但我需要将 java 版本更改为 8。我将配置编辑为 image: gradle:jdk8 并出现错误:

....
Illegal option: -cacerts

我的gitlab配置理解很差。如何修复配置以使用图像 gradle:jdk8 ?

keytool -importcert 命令确实有一个 -cacerts 选项,但我从未见过它与 -trustcacerts.

结合使用

文档确实提到:

-cacerts cacerts

Operates on the cacerts keystore.
This option is equivalent to "-keystore path_to_cacerts -storetype type_of_cacerts".

An error will be reported if the -keystore or -storetype option is used with the -cacerts option.

我在谷歌搜索时找到了解决方案 'keytool import crt to jks' here :

keytool -importcert -file my.cert.location/my.cert.crt -storepass changeit -keystore $JAVA_HOME/jre/lib/security/cacerts -alias mycert1

-密钥库必须是默认的 java 密钥库位置 – $JAVA_HOME/jre/lib/security/cacerts。它适用于 gradle:jdk8。我可以使用这些 keytool 选项构建和发布。此命令将 .crt 证书添加到默认 java 证书存储。