2016-08-30 3 views
0

У нас есть сервер nexus, который имеет общую группу репозитория maven-public, содержащую все внешние прокси-репозитории (например, maven-central). Кроме того, у нас есть локальный репозиторий. Назовем это MyProjectRepository. Он разделен на release-репо и моментальный снимок.Почему maven не может найти артефакт, расположенный в размещенном репозитории?

Таким образом, в настоящее время выглядит следующим образом:

  • MyProjectRepository
  • MyProjectRepository-снимки
    • ArtifactOne
      • Snapshot-5
      • ...
      • Snapshot- 1
    • ArtifactTwo
      • Snapshot-3
      • ...
      • Snapshot-1

Хорошо, ArtifactTwo нужно ArtifactOne как зависимость. Таким образом, я добавил это в разделе Зависимости:

<dependency> 
     <groupId>com.company</groupId> 
     <artifactId>artifactone</artifactId> 
     <version>0.0.5</version> 
    </dependency> 

Я настроен раздел хранилища, как это:

<repository> 
     <id>myprojectrepositoryss</id> 
     <name>MyProjectRepository Snapshots</name> 
     <url>http://mylocalnexus.com/nexus/repository/MyProjectRepository-Snapshots/</url> 
     <releases> 
      <enabled>false</enabled> 
     </releases> 
     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
    </repository> 

Моего settings.xml зеркало сечение выглядит следующим образом:

<mirror> 
     <!--This sends everything else to /public --> 
     <id>nexus</id> 
     <mirrorOf>external:*, !myprojectrepositoryss</mirrorOf> 
     <url>http://mylocalnexus.com/nexus/repository/maven-public/</url> 
    </mirror> 

Мой settings.xml профили сечения выглядеть следующим образом:

<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></releases> 
     <snapshots><enabled>true</enabled></snapshots> 
    </pluginRepository> 
    </pluginRepositories> 
</profile> 

Несмотря на настройку всего, как описано в учебнике, моя IDE заявляет, что артефакт в данной зависимости не может быть найден.

Не удалось выполнить задачу по проекту ArtifactTwo: Не удалось разрешить зависимостей для проекта com.company:ArtifactTwo:jar:0.0.3-SNAPSHOT: Неспособность найти com.company:artifactone:jar:0.0. 5 в http://mylocalnexus.com/nexus/repository/maven-public/ кэшировались в локальное хранилище, разрешение не будет повторной попытка, пока интервал обновления связующего не прошло и обновления вынуждены

Почему искать зависимость в «мавена-общественности»? Кто-нибудь знает, как заставить это работать?

ответ

0

Он ищет в maven-общедоступной группе по желанию и настроен в зеркальном URL-адресе вашего файла настроек.

Вам просто нужно добавить свои репозитории проектов в группу maven-public repository, и все будет работать нормально.

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