Как найти, где библиотека используется в нескольких файлах POM - PullRequest
4 голосов
/ 08 апреля 2010

У нас есть несколько проектов Maven в зависимости от наших общих библиотек.

Когда мы обновляем библиотеку, было бы полезно быстро выяснить, какие проекты зависят от библиотеки (и, возможно, потребуется использовать новую версию)

Очевидно, что я могу вручную просмотреть все файлы pom или написать скрипт для этого, но это не идеально.

Существуют ли инструменты, обеспечивающие эту функциональность. например плагин hudson, Nexus, артефакт и т. д.?

EDIT:

Некоторые уточнения:

Я не хочу обновлять сразу все проекты. Регрессивное тестирование и выпуск релизов делают это непрактичным и зачастую ненужным (даже при автоматическом тестировании и выпуске). Я просто хочу отчет, показывающий, что может понадобиться проектам для обновления библиотеки ...

Многие ответы сосредоточены вокруг самого проекта, отмечая, какая версия используется. В идеале решение должно работать так, чтобы для данной библиотеки я мог спросить, что использует это. Это похоже на то, о чем идет речь в следующей статье о Nexus.

Хадсон делает нечто подобное с автоматизированными сборками maven. Я могу посмотреть на расширение этого с плагином Hudson.

Ответы [ 5 ]

3 голосов
/ 08 апреля 2010

Я знаю, что, хотя это хороший инструмент для управления помпами и банками, Artifactory не имеет такой функции, о которой вы спрашиваете: (

Возможно, вы захотите проверить этот вопрос StackOverflow: Найдите новые версии зависимостей

В качестве альтернативы вы можете проверить Версии Maven Plugin . Помимо прочего, он позволяет сканировать зависимости проекта и создавать отчет о тех зависимостях, для которых доступны более новые версии.

1 голос
/ 08 апреля 2010

Обычная практика - объявлять все версии в dependencyManagemen t родительского модуля и ссылочные зависимости без версий везде.В этом случае вам нужно будет обновить только один POM.

0 голосов
/ 12 мая 2010

Мой поиск окончен: http://www.sonarsource.org/sonar-2-1-in-screenshots/

Сонар теперь обеспечивает это.

0 голосов
/ 08 апреля 2010

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

  <dependency>
      <groupId>foo.xyzzy</groupId>
      <artifactId>bar</artifactId>
      <version>[1.0.0,2.0.0)</version>
  </dependency>

Возможно, имеет смысл использовать диапазон версий, например [1.0,), для включения самой новой версии после 1.0.

Хитрость для выполнения этой работы заключается в том, чтобы иметь профили dev и prod, которые включают и исключают репозитории моментальных снимков для ваших общих ресурсов, и использовать hudson для автоматической сборки проектов при повторной сборке зависимости.

0 голосов
/ 08 апреля 2010

Не совсем то, что вы просите, но может помочь отчет о сходимости зависимостей . Здесь - это некоторые примеры .

Обновление: Мне известно, что я не совсем отвечаю на вопрос с моим предложением, но, делая это по-другому (для нахождения всех проектов, которые ссылаются на данный артефакт), потребуется собрать все POM всех проекты, и я не знаю, какое решение в настоящее время предлагает такую ​​ функцию, на которую ссылается (хотя корпоративный репозиторий был бы идеальным кандидатом для реализации этого).

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