2015-09-14 2 views
2

Я создал частный менеджер репо-репозитория в экземпляре EC2 и следил за различными инструкциями, плавающими по интернету, о том, как настроить проект maven для его использования , Я также отключил анонимную учетную запись. Я могу подключить и скопировать репозитории через curl -U username:password <the_url> и, похоже, все нормально. Однако, когда я пытаюсь использовать Maven (любые цели) Самая первая вещь, которую я получаюmaven получает «не авторизовано» при попытке доступа к частному репозиторию nexus

[WARNING] Could not transfer metadata org.apache.maven.plugins:maven-compiler-plugin/maven-metadata.xml from/to nexus (http://MY_NEXUS_HOST:8081/nexus/content/groups/public): Not authorized , ReasonPhrase:Unauthorized. 

Затем МВН команда терпит неудачу, потому что не может найти плагин в любом месте. Поэтому тот факт, что я могу использовать команду rest, и работает так, как ожидалось, но не через maven указывает мне, что это проблема с конфигурацией. Я думаю, я понимаю, что происходит очень хорошо, и я проверил и перепроверял файлы, но я не вижу ничего плохого. вот файл settings.xml

<servers> 
    <server> 
     <id>nexus-snapshot</id> 
     <username>USER_NAME</username> 
     <password>USER_PASSWD</password> 
    </server> 
    <server> 
     <id>nexus-release</id> 
     <username>USER_NAME</username> 
     <password>USER_PASSWD</password> 
    </server> 

</servers> 
<mirrors> 
    <mirror> 
     <!--This sends everything else to /public --> 
     <id>nexus</id> 
     <mirrorOf>*</mirrorOf> 
     <url>http://MY_NEXUS_HOST:8081/nexus/content/groups/public</url> 
    </mirror> 
    </mirrors> 
    <profiles> 
    <profile> 
     <id>nexus</id> 
     <!--Enable snapshots for the built in central repo to direct --> 
     <!--all requests to nexus via the mirror --> 
     <repositories> 
     <repository> 
      <id>central</id> 
      <url>http://central</url> 
      <releases> 
       <enabled>true</enabled> 
      </releases> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
     </repository> 
     </repositories> 
    <pluginRepositories> 
     <pluginRepository> 
      <id>central</id> 
      <url>http://central</url> 
      <releases> 
       <enabled>true</enabled> 
       <updatePolicy>never</updatePolicy> 
      </releases> 
      <snapshots> 
       <enabled>true</enabled> 
       <updatePolicy>always</updatePolicy> 
      </snapshots> 
     </pluginRepository> 
     </pluginRepositories> 
    </profile> 
    </profiles> 
    <activeProfiles> 
    <!--make the profile active all the time --> 
    <activeProfile>nexus</activeProfile> 
    </activeProfiles> 

А вот Релевент часть файла пом

<distributionManagement> 
     <repository> 
      <id>nexus-release</id> 
      <name>Nexus Release Repository</name> 
      <url>http://MY_NEXUS_HOST:8081/nexus/content/repositories/releases</url> 
     </repository> 
     <snapshotRepository> 
      <id>nexus-snapshot</id> 
      <name>Nexus Snapshot Repository</name> 
      <url>http://MY_NEXUS_HOST:8081/nexus/content/repositories/snapshots</url> 
     </snapshotRepository> 
    </distributionManagement> 

Я интересно, если есть способ, чтобы увидеть точный вопрос I» м работает. Например, если я получаю 401, 403 или (по какой-то причине?) 404. Если кто-то может мне помочь, я был бы так любезен. О, как maven, так и nexus являются последними версиями на прошлой неделе. * отредактирован, потому что независимо от того, сколько раз вы проверяете что-то перед ударом, отправьте ...

+0

Попробуйте использовать флаги '-e' и' -X' или выполните следующие действия: http://blog.sonatype.com/2010/11/what-to-do-when-nexus-returns-401 /#.Vfb9U7O1nOp –

+0

Вы пробовали 'https'? –

+0

Когда я пытаюсь, я получаю сообщение «Неизвестное SSL-сообщение, соединение с открытым текстом»? –

ответ

6

О, мой фанк коз. Проблема заключалась в том, что, по-видимому, в settings.xml поле Id должно совпадать с полем в поле сервера. то есть:

<server> 
     <id>nexus-release</id>   <---THIS MUST MATCH 
     <username>USER_NAME</username> 
     <password>USER_PASSWD</password> 
    </server> 
</servers> 
<mirrors> 
    <mirror> 
     <id>nexus-release</id>   <---THIS 
     <mirrorOf>*</mirrorOf> 
     <url>http://MY_NEXUS_HOST:8081/nexus/content/groups/public</url> 
    </mirror> 
    </mirrors> 

Я предполагаю, что это не имеет значения, я использую (они оба одинаковы в этом случае, но это не всегда верно).

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