scala - 无法使用 scala 的 sbt 从存储库中获取插件

标签 scala ubuntu ssl plugins 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

似乎是存储库证书中的问题,所以我手动获取每个证书并使用命令将其添加到我的 keystore (我使用 ubuntu):

keytool -import -alias "artifact server2" -keystore /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts -file _.bintray.com

但这并没有帮助。

更新:我通过手动将存储库主机中的所有证书(最终证书和中间证书)添加到本地 keystore 来解决了我的问题。

最佳答案

这个问题让我几乎准备把我的 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 时,插件下载了,我几乎高兴得流下了眼泪。

关于scala - 无法使用 scala 的 sbt 从存储库中获取插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54075762/

相关文章:

linux - Apache2 无法启动

Perl LWP::UserAgent 在特定服务器上使 SSL 失败

wordpress - 如何在 nginx 中配置 wordpress?

syntax - 为什么这些语句之一可以在 Scala 中编译,而另一个则不能?

eclipse - 在heroku上部署scalatra应用程序错误找不到插件

scala - 基于 bool 值填充枚举集

java - 将命令行中的文本获取到 Java 中

php - 客户端如何在ssl连接中生成公钥?

.net - 为什么我不能为 Sql Server Reporting Services 强制使用 SSL?

scala - 在Scala中,如何在满足条件后立即停止从文件中读取行?