Не могу получить плагины из репозиториев с помощью scala sbt - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь скомпилировать / собрать проект scala с помощью sbt, в проекте / 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 голосов
/ 18 февраля 2019

В этом выпуске я был почти готов выбросить свой макбук в окно.

На моем 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, я использовал приведенное выше решение Станислава:

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 скачанный плагин, я чуть не заплакал от слез радости.

...