sbt 1.3.8 publishLocal создает банку, которую не может разрешить обновление sbt. scala версия добавляется к названию банки - PullRequest
2 голосов
/ 11 февраля 2020

Я опубликовал несколько библиотек, используя sbt publishLocal, он работал и был опубликован в моем ~/.ivy2/local каталоге.

У меня есть проект, который зависит от этих библиотек, но sbt update не может их найти.

В частности, мой проект имеет следующие зависимости:

lazy val myDependencies = commonDependencies ++ Seq(
    "my.corp"  %% "lib1" % "1.0.1-SNAPSHOT" withSources () withJavadoc (),
    "my.corp"  %% "lib2" % "2.0.2-SNAPSHOT" withSources () withJavadoc ()
  )

sbt update имеет эту ошибку:

[error] (services / update) lmcoursier.internal.shaded.coursier.error.FetchError$DownloadingArtifacts: Error fetching artifacts:
[error] file:////home/myuser/.ivy2//local/my.corp/lib1_2.12/1.0.1-SNAPSHOT/jars/lib1.jar: not found: /home/myuser/.ivy2//local/my.corp/lib1_2.12/1.0.1-SNAPSHOT/jars/lib1.jar
[error] file://///home/myuser/.ivy2//local/my.corp/lib2_2.12/2.0.2-SNAPSHOT/jars/lib2.jar: not found: /home/myuser/.ivy2//local/my.corp/lib2_2.12/2.0.2-SNAPSHOT/jars/lib2.jar

когда я смотрю в каталог, я вижу опубликованные банки, но к их имени добавлена ​​версия scala, поэтому разрешить update не удастся, я думаю:

$ ls /home/myuser/.ivy2/local/my.corp/lib1_2.12/1.0.1-SNAPSHOT/jars
lib1_2.12.jar  lib1_2.12.jar.md5  lib1_2.12.jar.sha1

$ ls /home/myuser/.ivy2/local/my.corp/lib2_2.12/2.0.2-SNAPSHOT/jars
lib2_2.12.jar  lib2_2.12.jar.md5  lib2_2.12.jar.sha1

Если я опубликую sh в репо по-настоящему, я смогу разрешить библиотеки.

Кто-нибудь знает заклинание sbt, чтобы это исправить? ; -)

Приветствия Карл

Обновление: - Я думаю, что проблема в coursier, не знаю, как заставить его искать файл lib2_2_12.jar. Может ли это иметь плохую кешированную ссылку?

Caused by: lmcoursier.internal.shaded.coursier.cache.ArtifactError$NotFound: not found: /home/myuser/.ivy2/local/my.corp/lib2_2.12/2.0.2-SNAPSHOT/jars/lib2.jar

Обновление: - отключение обработчика coursier с помощью REPL sbt. Я могу запустить

sbt:my-project> set ThisBuild / useCoursier := false

, а затем

sbt:my-project> update

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

Обновление: Сработал извлечение из командной строки! !

coursier fetch my.corp::lib1:1.0.1-SNAPSHOT --no-default -r central -r ivy2Local

загрузил транзитивные зависимости и обнаружил мой jar в моем локальном каталоге ivy2

, так что это похоже на проблему взаимодействия с sbt-coursier

...