Публикация в Apache Archiva отклонена сервером с неавторизованным доступом в SBT?

У меня есть многомодульный проект SBT, который я пытаюсь опубликовать в удаленном архиве Apache.

[error] (core/*:publish) java.io.IOException: Access to URL http://XX.XX.XX.XX/repository/development/com/example/core_2.10/1.0.0.SNAPSHOT.304fcd73d72ffe4a05271197902c36b9a59b4922/core_2.10-1.0.0.SNAPSHOT.304fcd73d72ffe4a05271197902c36b9a59b4922.pom was refused by the server: Unauthorized

Для своих снимков я добавляю хэш Git SHA-1 для коммита.

Build.scala

publishMavenStyle := true,
publishArtifact in Test := false,
pomIncludeRepository := { _ => true },
publishTo := Some("development" at "http://XX.XX.XX.X/repository/development"),
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials_development"), // archiva credentials by repo

Я позаботился о том, чтобы правильно установить область в соответствии с сообщениями, которые я прочитал. Я получил его, выполнив:

curl -X POST http://xx.xx.xx.xx/repository/development -v > /dev/null

.credentials_development

realm=Repository Archiva Managed development Repository
host=XX.XX.XX.XX
user=myuser
password=mypassword

В SBT я запускаю:

compile
assembly
make-pom
package
publish

Я могу загружать артефакты с помощью пользователя через веб-администрирование.

Как мне это сделать, чтобы публикация работала? Возможно, мне нужно настроить учетные данные через ivysettings.xml?


person wfg4    schedule 03.03.2014    source источник


Ответы (2)


Комментарий к этому вопросу привел меня к ответу: sbt: опубликовать в корпоративном Неавторизованный репозиторий Nexus

Нельзя включать порт (мой сервер Archiva работает на порту 8080) в имя хоста в файле учетных данных. Это предотвратит использование ваших учетных данных во время публикации.

Я также указал область в своем publishTo и переместил свой файл учетных данных в ~/.sbt в соответствии с комментарием barnesjd (но не в плагинах, просто в ~./sbt).

Для справки другим, вот моя конфигурация:

Build.scala

publishTo := Some("Repository Archiva Managed development Repository" at "http://XX.XX.XX.XX:8080/respository/development/"),
credentials += Credentials(Path.userHome / ".sbt" / ".archiva_credentials")

.archiva_credentials

realm=Repository Archiva Managed development Repository
host=XX.XX.XX.XX
user=myuser
password=mypassword
person wfg4    schedule 05.03.2014
comment
Потрясающий! Рад, что ты встал на путь. - person joescii; 06.03.2014

Публикую в архив через sbt на работе без проблем. Я помню, что у меня была похожая неприятная проблема, и это было из-за того, что я ошибся в царстве. Предполагая, что вы правы, единственное, что я вижу по-другому, это то, что я указываю свои учетные данные в ~/.sbt/0.13/plugins/credentials.sbt. Создайте такой файл, добавьте следующее содержимое:

credentials ++= Seq(
  Credentials("Repository Archiva Managed development Repository",
              "XX.XX.XX.XX", 
              "myuser",
              "mypassword")
)

Обратите внимание, что в разделе xx.xx.xx.xx вы указываете только IP/DNS-адрес вашего сервера. Не полный путь.

Возможно, вам придется удалить текущую настройку credentials, чтобы избежать конфликтов.

person joescii    schedule 03.03.2014