2010-02-25 2 views
4

Вчера я попросил об использовании эксклюзивного репозитория maven, теперь мне нужно использовать 2, они оба являются частными .. поэтому относительно this link, в котором объясняется, как заставить maven использовать один репозиторий, как указать второй репозиторий? Возьмем, к примеру, у меня есть два из этих репозиториев в моем pom.xml сейчас, если что-то не хватает в двух хранилищах, оно пойдет и будет искать зависимость от публичного репозитория, как это предотвратить?Использование нескольких корпоративных репозиториев

<repositories> 
    <repository> 
     <id>my-internal-site</id> 
     <name>our maven repository</name> 
     <url>http://myserver/repo</url> 
    </repository> 
<repository> 
     <id>my-other-internal-site</id> 
     <name>our 2nd maven repository</name> 
     <url>http://myserver/repo2</url> 
    </repository> 
    </repositories> 

Должен ли я изменить настройку xml как это?

<settings> 
    ... 
    <mirrors> 
    <mirror> 
     <id>internal-repository</id> 
     <name>our maven repository</name> 
     <url>http://myserver/repo</url> 
     <mirrorOf>my-internal-site,my-other-internal-site</mirrorOf> 
    </mirror> 
    <mirror> 
     <id>my-other-internal-site</id> 
     <name>our 2nd maven repository</name> 
     <url>http://myserver/repo2</url> 
     <mirrorOf>my-internal-site,my-other-internal-site</mirrorOf> 
    </mirror> 
    </mirrors> 
    ... 
</settings> 

Или каким-либо другим способом?

EDIT

Я знаю, что мне не нужно, чтобы установить репозиториев в моей pom.xml, если я указываю эксклюзивные из них в settings.xml .. Я просто сделать точку, так кто-то может ответить на мой вопрос лучше .. спасибо

ответ

4

Вам не нужно дублировать репозиторий в зеркалах - конфигурация, которую вы проиллюстрировали, не повлияет ни на одно из зеркал, выбранных для данного mirrorOf.

Зеркала заменяют репозитории, уже определенные, для данного идентификатора или набора идентификаторов (external:* и т. Д.). Если вам нужно добавить репозиторий, вы должны добавить элемент репозитория либо в POM, либо в настройках.

Вы, вероятно, хотите что-то вроде этого:

<settings> 
    ... 
    <profiles> 
    <profile> 
     <id>second-repo</id> 
     <repositories> 
     <repository> 
      <id>second-repo</id> 
      <url>http://myrepo/second-repo</url> 
      <!-- add releases/snapshots config as appropriate here --> 
     </repository> 
     </repositories> 
     <!-- duplicate for pluginRepositories here if needed --> 
    </profile> 
    </profiles> 
    <activeProfiles> 
    <activeProfile>second-repo</activeProfile> 
    </activeProfiles> 
    ... 
    <mirrors> 
    <mirror> 
     <id>corporate-repo</id> 
     <url>http://myrepo/my-group</url> 
     <mirrorOf>external:*,!second-repo</mirrorOf> 
    </mirror> 
    </mirrors> 
    ... 
</settings> 
+0

Ах да, конечно! –

2

я до сих пор использую:

<settings> 
    ... 
    <mirrors> 
    <mirror> 
     <id>internal-repository</id> 
     <name>Maven Repository Manager running on repo.mycompany.com</name> 
     <url>http://repo.mycompany.com/proxy</url> 
     <mirrorOf>*</mirrorOf> 
    </mirror> 
    </mirrors> 
    ... 
</settings> 

И добавить другой внутренний репозиторий в качестве «проксите-Repository» (большинство репозиториев менеджеров может замещать хранилища) в первом.

Но мне интересно, почему вы должны это делать. Не все ли проекты используют один и тот же внутренний репозиторий?

+0

@Pascal Thivent 'Но мне интересно, почему вы должны это сделать. Не все ли проекты используют один и тот же внутренний репозиторий? «Конечно, они могут, если вы спросите меня, но никто не делает: DI просто получите обновление, как это сделать .. знаете ли вы, где я могу узнать больше о репозиториях прокси-сервера, я не сделал 't google ничего полезного до сих пор. Могу ли я добавить репозиторий прокси из pom или настроек вместо использования gui? – ant

+0

@ c0mrade Я добавил ссылку на документацию Nexus (вы используете Nexus, верно?). И, может быть, я не был чист, но это чистая конфигурация Nexus, т. Е. Чистый материал Nexus, вы не можете сделать это на уровне pom или настроек (по крайней мере, не то, что я предлагаю). –

+0

no мы используем Artifactory (http://www.jfrog.org/products.php), и у меня нет разрешений, кроме чтения из репозитория, другой парень делает это. На данный момент я ответственен за успешные сборки. как я понял .. Мне нужно сделать ссылку на 2 репозитория, а затем добавить их id, разделенные запятой в mirrorOf в settings.xml? – ant

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