2014-01-06 5 views
4
сообщение

Error:SBT: Невозможно опубликовать Apache Archiva

java.io.IOException: Access to URL 
    http://maven.company.com/repository/internal/com/company/ 
    project_2.10/0.0.3/project_2.10-0.0.3.pom was 
    refused by the server: Unauthorized 

Запуск Apache Archiva 1,4-М4 (последняя), я в состоянии загрузить через веб-интерфейс, но не через SBT.

Используя эти параметры в SBT:

publishTo := Some("company releases" at "http://maven.company.com/repository/internal"), 
    credentials += Credentials(
    "company Maven Repository", 
      "maven.company.com", 
      "username", 
      "password" 
     ), 
    publishMavenStyle := true, 
    publishArtifact in Test := false, 
    pomIncludeRepository := { _ => true }, 
    // .. some xml with author details 
} 

Все детали, включая имя пользователя, пароль и URL-адресов являются правильными.

+0

всех журналов в archiva.log файла относительно AuthZ? Можете ли вы добавить отладку в sbt-инструменте, чтобы быть уверенным, что пользователь/пароль пересылаются? –

ответ

5

Область безопасности важна для Айви. Это похоже на единственный менеджер зависимостей, который требует от вас использовать действующую область безопасности. Я считаю, что для apache archiva это «Репозиторий Archiva Managed». Вы можете проверить, пытаясь сделать свой собственный HTTP-запрос в Archiva и посмотреть, какие Realms он вам сообщает.

Вот код, который пытается обнаружить сферы безопасности: https://github.com/sbt/sbt-pom-reader/blob/2b515b58739ef7bdfad8f98248e901db8e140892/src/main/scala/com/typesafe/sbt/pom/MavenHelper.scala#L212-L221

Update: Сфера выглядит следующим образом: "Repository Archiva Managed внутреннего Repository". Если вы публикуете другие репозитории, замените «internal» на имя репо.

как только вы определить область безопасности, вы хотите, чтобы обновить сборку следующим образом:

credentials += Credentials(
     "Repository Archiva Managed internal Repository", // Or whatever you detect as the security realm 
     "maven.company.com", 
     "username", 
     "password" 
    ), 
+0

В любое время. Это самая распространенная ошибка при попытке публикации, но крючок в Ivy для улучшения сообщения об ошибке невозможен (статические методы), иначе я бы уже пытался его исправить. – jsuereth

Смежные вопросы