scala - 无法使用 scala 的 sbt 从存储库中获取插件
问题描述
我尝试使用 sbt 编译/构建 scala 项目,在 project/plugins.sbt 中提到了两个插件:
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.17")
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.4")
导入 sbt 项目时出错:
[error] sbt.librarymanagement.ResolveException: download failed:
com.typesafe.play#sbt-plugin;2.6.17!sbt-plugin.jar
[error] download failed: com.typesafe.sbt#sbt-native-packager;1.3.4!sbt-native-
packager.jar
似乎存储库证书中存在问题,因此我手动获取每个证书并使用命令将其添加到我的密钥库中(我使用 ubuntu):
keytool -import -alias "artifact server2" -keystore /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts -file _.bintray.com
但这无济于事。
更新:我通过手动将所有证书(最终证书和中间证书)从 repo 的主机添加到本地密钥库来解决了我的问题。
解决方案
这个问题让我几乎准备把我的macbook扔出窗外。
在我的 Mac 上,java cacerts 位于此处:
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/security/cacerts
为了获得所需的证书,sbt-native-packager
我使用了这个(我从某人那里偷来的,现在我找不到归属):
echo -n | openssl s_client -connect repo.scala-sbt.org:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/scala-sbt.cert
然后将其添加到 java 信任存储中,我使用了上面 Stanislav 的解决方案:
sudo keytool -import -alias "scala-sbt server" -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/security/cacerts -file /tmp/scala-sbt.cert
请记住,cacerts 文件的默认密码是changeit
然后下一次我运行 sbt 下载的插件时,我几乎要流下喜悦的泪水。
推荐阅读
- react-native - 未定义的对象(评估'_reactNavigation.ThemeColors.light')
- c# - 其他计算机上的 SQL Server Express 附件错误
- debugging - Emacs 中的错误:无效的搜索范围(点的错误方面)
- ruby - Ruby:获取静态方法列表
- ruby - aws - 如何列出所有地区的可用区?
- java - 如何将 Spring Boot 管理客户端元数据发送到管理服务器
- php - 如何让我的代码识别我的数组值?
- firefox - phpMyAdmin 在启动时显示 Javascript 错误 (Firefox)
- scala - scala中的继承
- python - Keras,Python中的自定义损失函数?