Доступ к репозиторию Maven через https в sbt - PullRequest
7 голосов
/ 16 января 2020

У меня есть java проект, который использует sbt (scala) для сборки. До вчерашнего дня это работало, но сегодня я вижу проблему при извлечении репо из maven

esolving org.codehaus.plexus#plexus-component-api;1.0-alpha-16 ...

[error] SERVER ERROR: HTTPS Required url=http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom

[warn]  module not found: org.codehaus.plexus#plexus-component-api;1.0-alpha-16

[warn] ==== typesafe-ivy-releases: tried

[warn]   http://repo.typesafe.com/typesafe/ivy-releases/org.codehaus.plexus/plexus-component-api/1.0-alpha-16/ivys/ivy.xml

[warn] ==== sbt-plugin-releases: tried

[warn]   http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/org.codehaus.plexus/plexus-component-api/1.0-alpha-16/ivys/ivy.xml

[warn] ==== local: tried

[warn]   /root/.ivy2/local/org.codehaus.plexus/plexus-component-api/1.0-alpha-16/ivys/ivy.xml

[warn] ==== activator-local: tried

[warn]   file:/heimdall/app/projects/load-test/content-engine/repository/org.codehaus.plexus/plexus-component-api/1.0-alpha-16/ivys/ivy.xml

[warn] ==== public: tried

[warn]   http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom

[warn] ==== typesafe-releases: tried

[warn]   http://repo.typesafe.com/typesafe/releases/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom

[warn] ==== typesafe-ivy-releasez: tried

[warn]   http://repo.typesafe.com/typesafe/ivy-releases/org.codehaus.plexus/plexus-component-api/1.0-alpha-16/ivys/ivy.xml

[warn] ==== Typesafe repository: tried

[warn]   http://repo.typesafe.com/typesafe/releases/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom

Исходя из того, что я могу сделать вывод, репо, похоже, перемещено в конечную точку https. И файл POM доступен на конечной точке https. Проблема в том, что это не прямая зависимость в моем проекте, а транзитивная через другую зависимость. Как мне использовать https для этой специфической c зависимости?

Я использую sbt версии 0.13.5. Я проверил справочное руководство и добавил DefaultMavenRepository явно в build.sbt

resolvers += DefaultMavenRepository

Согласно этой официальной документации, DefaultMavenRepository указывает на защищенную конечную точку. Перед этим я попробовал следующее в build.sbt

resolvers += "Maven Repo" at  "https://repo1.maven.org/maven2/" 

и добавил

"org.codehaus.plexus" % "plexus-component-api" % "1.0-alpha-16", 

в качестве библиотекиDepdency явно в моем build.sbt, чтобы он мог кэшироваться и не передаваться транзитивно где я могу не иметь контроля над тем, откуда его вытащить. Но это также не удается. Я очистил кеши m2 и ivy2

Ответы [ 5 ]

7 голосов
/ 05 февраля 2020

Проверьте ссылки в файле конфигурации sbt: ~ / .sbt / repositories

Измените строку maven-central: http://repo1.maven.org/maven2/ на maven-central: https://repo1.maven.org/maven2/

Исправляет загрузку без обновления sbt

3 голосов
/ 16 января 2020

Как упомянул Sarve sh, проблема заключалась в том, что я использовал версию sbt 0.13.5. И DefaultMavenRepository начал указывать на конечную точку https с v0.13.6 (документация не упоминает об этом). После увеличения версии я смог вытащить все зависимости.

1 голос
/ 21 апреля 2020

Создайте файл конфигурации sbt ~/.sbt/repositories и добавьте следующую конфигурацию:

[repositories] 
maven-central: https://repo1.maven.org/maven2

Более подробную информацию вы можете найти здесь - https://www.scala-sbt.org/1.x/docs/Proxy-Repositories.html

1 голос
/ 06 февраля 2020

Добавьте следующий преобразователь в файл build.sbt или sbt:

resolvers += "Maven Central Server" at "https://repo1.maven.org/maven2"

, а затем добавьте следующее свойство для включения протокола TLS 1.2 при выполнении файла jb sbt:

( java -Dhttps.protocols = TLSv1.2 -jar dirname $ 0 / sbt-launch-0.12.0.jar)

-Dhttps.protocols=TLSv1.2
0 голосов
/ 30 марта 2020

Для osx:

  • Открыть терминал.
  • cd в ./sbt (в моем случае /Users/your-user/.sbt)
  • touch repositories
  • nano repositories
  • Вставьте следующее (обязательно добавьте новую строку после [хранилища]

[хранилища]
maven-central: https://repo1.maven.org/maven2/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...