Зная ваши зависимости в Maven - PullRequest
       18

Зная ваши зависимости в Maven

1 голос
/ 23 февраля 2010

Если вы используете закрытый репозиторий, но ваше приложение использует некоторые зависимости от внешнего (maven public) репозитория.

Есть ли способ, которым список может быть создан с зависимостями, которые являются внутренними, а какие - из внешнего репозитория.

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

EDIT

@ Pascal Thivent

Вот сделка:

Допустим, мой проект использует только 2 зависимости: Первый: джунит Второй: скорость

Теперь давайте предположим, что log4j - это транзитивная зависимость junit (которая является одной из зависимостей, используемых моим проектом).

И давайте предположим, что скорость не имеет транзитивных зависимостей. И давайте представим, что скорость находится в моем корпоративном хранилище, и я знаю, что junit загружается из хранилища maven, но я не знаю о log4j, потому что я не поместил его в тег <dependecies>.

Есть ли способ, которым я могу получить список зависимостей или что-то еще ... который сгруппирует зависимости по репозиториям, из которых они вышли, или что-то подобное:

скорость - корпоративный репозиторий Хунит - хранилище Maven log4j - хранилище maven

Или, если я использую mirrorof, чтобы указать явно использовать корпоративный репозиторий, maven скажет мне, какие артефакты я пропускаю, в том числе в переходных зависимостях?

Тпй

Ответы [ 2 ]

6 голосов
/ 23 февраля 2010

Я бы использовал dependency:purge-local-repository для этой цели и проанализировал бы вывод консоли, чтобы увидеть, откуда (ре) обновляются зависимости.

И если в конце вы используете корпоративный репозиторий и хотите заставить Maven использовать его для всех запросов (т.е. никогда не обращаться к общему репозиторию), то вам следует объявить корпоративный репозиторий как mirrorOf все репозитории в вашем settings.xml

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

Но, может быть, я слишком много экстраполирую здесь.

Обновление:

Или, если я использую mirrorof, чтобы указать явно использовать корпоративный репозиторий, maven скажет мне, какие артефакты я пропускаю, в том числе находящиеся в переходных зависимостях?

Да.

0 голосов
/ 23 февраля 2010

Полагаю, вы должны использовать Nexus или Artifactory на своем сервере корпоративного хранилища для прозрачной загрузки артефактов из удаленных хранилищ в корпоративный хранилище по мере необходимости.

Если вы хотите знать только транзитивные зависимости вашего проекта, m2eclipse предоставляет граф зависимостей, иерархия для него.

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