Ошибка при загрузке зависимостей в проекте Maven с несколькими зеркалами - PullRequest
0 голосов
/ 17 февраля 2012

У меня проблема, когда я пытаюсь построить проект с Maven.У меня есть сервер Nexus в моей сети, и все мои зависимости оттудаУ него есть центральный репозиторий, который является прокси-сервером для официального репозитория maven2 для внешних зависимостей, и репозиторий, в котором хранятся все внутренние библиотеки.

Что ж, давайте перейдем к проблеме.У меня есть следующая конфигурация в моей папке .m2:

<settings>
    <mirrors>
        <mirror>
            <id>treto</id>
            <name>Tre-to Libs</name>
            <url>http://10.163.40.41:8081/nexus/content/repositories/treto-libs/</url>
            <mirrorOf>treto-libs,br.jus.treto</mirrorOf>
        </mirror>
        <mirror>
            <id>central</id>
            <name>Maven Repository Manager</name>
            <url>http://10.163.40.41:8081/nexus/content/repositories/central/</url>
            <mirrorOf>central,!treto-libs,!br.jus.treto</mirrorOf>
        </mirror>
    </mirrors>
     ...
 </settings>

И у pom моего проекта есть следующая зависимость, которую код я скопировал из интерфейса nexus:

<dependencies>
    <dependency>
        <groupId>br.jus.treto</groupId>
        <artifactId>tre-auth</artifactId>
        <version>0.120</version>
    </dependency>
</dependencies>

Предполагается, что эта зависимость загружается из зеркала "treto", но Maven всегда пытается получить ее из центрального зеркала, у которого нет этой зависимости.

Вопрос в том, чего мне не хватаетконфигурация?

Ответы [ 2 ]

1 голос
/ 19 февраля 2012

Вы должны иметь в себе pom.xml или settings.xml (в профиле), такого рода объявление:

<repositories>
    <repository>
         <id>central</id>
         <url>http://repo1.maven.org/maven2/</url>
    </repository>
    <repository>
        <id>treto</id>
        <name>Tre-to Libs</name>
        <url>http://10.163.40.41:8081/nexus/content/repositories/treto-libs/</url>
    </repository>
</repositories>

Тогда ваши зеркала должны быть:

<mirrors>
    <mirror>
       <id>central</id>
       <name>Maven Repository Manager</name>
       <url>http://10.163.40.41:8081/nexus/content/repositories/central/</url>
       <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>

Вы можете указать maven использовать ваше зеркало для всего, кроме treto:

<mirrorOf>*,!treto</mirrorOf>

или использовать его только для центральных

<mirrorOf>central</mirrorOf>

Публикуйте полный pom и настройки, если это не такработа;);)

0 голосов
/ 18 февраля 2012

декларируются ли репозитории с идентификаторами (treto-libs, br.jus.treto) в вашем проекте или настройках? Потому что вы говорите, что mirrorOf эти идентификаторы должны быть объявлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...