Настройка подключения Nexus для развертывания maven

#maven #teamcity #nexus

#maven #teamcity #nexus

Вопрос:

Я пытаюсь получить некоторый опыт работы с Nexus и TeamCity. Для этого я настроил оба сервера на своем локальном компьютере и настроил любимый проект, который находится на github.com в частном репо.

Но я не могу запустить свою сборку TC, потому что шаг развертывания Maven завершается ошибкой со следующим сообщением.

 [14:58:55][Step 2/2] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project Worm: Failed to deploy artifacts: Could not transfer artifact org.test.worm:Worm:jar:1.0.0 from/to local_nexus (http://localhost:8081/repository/org.test): Transfer failed for http://localhost:8081/repository/org.test/org/test/worm/Worm/1.0.0/Worm-1.0.0.jar 401 Unauthorized
  

Похоже, что это не удается из-за неправильно настроенной авторизации, но я не могу найти ошибку.
В моих проектах pom.xml он настроен следующим образом

 <distributionManagement>
    <repository>
        <id>local_nexus</id>
        <name>Deployment</name>
        <url>http://localhost:8081/repository/org.test</url>
    </repository>
</distributionManagement>
  

и в моих mavens settings.xml вот так

 <server>
  <id>local_nexus</id>
  <username>admin</username>
  <password>admin</password>
</server>
  

Я использую пользователя admin по умолчанию (user / pw правильный, вход в nexus с тем же пользователем), который создается при установке nexus. Тот же пользователь, который создал репозиторий.

TC, работающий под localhost: 8080 и Nexus под localhost: 8081
, пожалуйста, скажите мне, что я настроил неправильно или что я забыл.

Ответ №1:

Используя mvn help:effective-settings , я мог бы подтвердить, что settings.xml был настроен правильно. Но это заставило меня понять, что мой сервер TeamCity использует другой (свой собственный) экземпляр maven, отличный от моего локального компьютера. Таким образом, решение состояло в том, чтобы либо установить maven-home для TeamCity, либо настроить settings.xml другого экземпляра maven.

Глупая ошибка, которую я должен был заметить намного раньше.