Как я могу получить зависимости моментальных снимков от Nexus, используя SBT? - PullRequest
4 голосов
/ 03 декабря 2010

У меня есть репозиторий maven2, из которого я пытаюсь получить артефакт моментального снимка с добавленной меткой времени.Я (неудивительно) могу получить его нормально при сборке с помощью maven2, но при сборке с помощью simple-build-tool (sbt) , который мне очень нравится, я не могу его опустить.

Я вижу из этого вопроса о снимках в Ivy , что можно настроить Ivy для получения артефактов снимков, но я не знаю, как заставить sbt сделать это.

Соответствующие биты моей текущей конфигурации:

val snapshotsName = "Snapshots Repository"
val snapshotsUrl = new java.net.URL("http://host:port/path/to/root")
val snapshotsPattern = "[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"
val snapshots = Resolver.url(snapshotsName, snapshotsUrl)(Patterns(snapshotsPattern))
Credentials(Path.userHome / ".ivy2" / ".credentials", log)

Обновление: После еще нескольких манипуляций похоже, что я могу заставить его указывать на правильный URL-адрес артефакта с помощьюследующий шаблон.

val snapshotsPattern = "[organisation]/[module]/[revision]-SNAPSHOT/[artifact]-[revision](-[timestamp]).[ext]"

При этом мне все еще нужно указать дополнительную метку времени в зависимости

val dep = "group" % "artifact" % "0.0.1" extra("timestamp" -> "20101202.195418-3")

, но она действительно вытягивает артефакт.Однако NOT вытягивает зависимости артефакта.Так что, похоже, у меня все еще что-то не так.

1 Ответ

2 голосов
/ 05 декабря 2010

Хорошо, я разобрался с этим, но это не было проблемой SBT, это была 100% ошибка пользователя.

В Nexus я использовал требуемую аутентификацию. У меня не были правильно установлены учетные данные аутентификации ( см. Мой вопрос аутентификации ), и поскольку он не был должным образом аутентифицирован, он не находил файлы pom метаданных и поэтому SBT распечатал сообщение об ошибке, что он не удалось Я неправильно предположил, что был аутентификации, но не разрешается. Поэтому я начал возиться с закономерностями, о чем свидетельствует фактический вопрос.

Однако теперь, когда я правильно настроил аутентификацию, я вернулся к обычному объявлению репозитория, например так:

val snapshotsRepo = "Snapshots Repository" at "http://host:port/path/to/snapshots/root/"

и все работает. Извлекаются артефакты и устраняются зависимости.

...