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

时间:2019-01-07 13:55:24

标签: 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

似乎在存储库的证书中存在问题,因此我手动获取每个证书,并使用命令将其添加到我的密钥库中(我使用ubuntu ):

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

但这没有帮助。

更新:我通过手动将来自回购主机的所有证书(结束和中间)添加到本地密钥库来解决了我的问题。

1 个答案:

答案 0 :(得分:1)

这个问题使我几乎准备好将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时,下载了该插件,我几乎流下了喜悦的眼泪。