У меня есть проект SBT, который использует внутренний репозиторий Nexus для получения некоторых из его зависимостей. Когда я бегу update
, я вижу следующие предупреждающие сообщения:Неразрешенная зависимость в SBT: нет файла плюща
[info] Resolving foo.bar.baz#foobar;2.0.1
...
[debug] The Repo of Interest: no ivy file found for foo.bar.baz#foobar;2.0.1
[warn] module not found: foo.bar.baz#foobar;2.0.1
[warn] ==== local: tried
...
... several irrelevant repositories omitted...
...
[warn] ==== The Repo of Interest: tried
[warn] http://internal.url.com/nexus/content/repositories/releases/foo/bar/baz/foobar/2.0.1/foobar-2.0.1.pom
...
... some other repositories omitted...
...
URL-адрес показано выше, кажется, как он должен работать, потому что я могу открыть POM в браузере без проблем (обратите внимание, что я изменял URL, чтобы вы я должен сказать, что он работает).
Еще более озадачивает тот факт, что я вижу эту проблему только при попытке построить на определенных машинах.
Как я даже начинаю отлаживать эту проблему? Есть ли дополнительные записи, которые я мог бы включить, чтобы понять, почему SBT/Ivy игнорирует POM, расположенную по указанному выше URL-адресу?
UPDATE: Мой build.sbt определяет арбитры следующим образом:
resolvers := Seq(
...,
"The Repo of Interest" at "http://internal.url.com/nexus/content/repositories/releases",
...
)
Также папка http://internal.url.com/nexus/content/repositories/releases/foo/bar/baz/foobar/2.0.1 имеет POM, банку, банку источников и связанные с ним и sha1 md5 для всех этих файлов. Файл П выглядит следующим образом:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>foo.bar.baz</groupId>
<artifactId>foobar</artifactId>
<version>2.0.1</version>
<dependencies>
...
</dependencies>
</project>
UPDATE # 2: сборки появились только работать на других машины, потому что они уже имели копию соответствующей банки кэшированной под ~/.ivy2/cache/foo/bar/baz/foobar/jars
.
UPDATE # 3: После того, глядя на входе чуть более внимательно, я считаю The Repo of Interest: no ivy file found for foo.bar.baz#foobar;2.0.1
является истинным сообщение об ошибке
Не могли бы вы взглянуть на конфигурацию вашего резонатора «Репо интерес». Наиболее типичные проблемы: (1) Путь артефакта Resolver настроен неправильно, (2) Resolver не работает в режиме Maven. Вы можете просмотреть свои решения с помощью консоли sbt - проверить преобразователи –
Я обновил вопрос, чтобы показать, как определяется определитель в файле build.sbt. Я считаю, что он определен для использования формата Maven, и именно поэтому он ищет файл pom в первую очередь. «Инспекция распознавателей» не дает подробностей. Он показывает: '[info] Setting: scala.collection.Seq [sbt.Resolver] = List (..., Repo of Interest: http://internal.url.com/nexus/content/repositories/releases,. ..) ' –
Не используйте': = '. Вы отменяете все настройки. Просто добавьте новые резольверы: 'resolvers в Global ++ = Seq (...)' или 'resolvers в Global + = ...'. –