Использование нескольких корпоративных репозиториев - PullRequest
4 голосов
/ 25 февраля 2010

Вчера я спрашивал об использовании исключительного репозитория maven, теперь получается, что мне нужно использовать 2, оба они являются частными ... так что относительно этой ссылки , которая объясняет, как заставить 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 ... Я просто высказываю мнение, чтобы кто-то мог лучше ответить на мой вопрос ... спасибо

Ответы [ 2 ]

4 голосов
/ 02 марта 2010

Вам не нужно дублировать хранилище в зеркалах - конфигурация, которую вы иллюстрировали, не будет иметь эффекта, если для данного 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>
2 голосов
/ 25 февраля 2010

Я бы еще использовал:

<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>

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

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

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