Служба Maven используется для графа зависимостей - PullRequest
0 голосов
/ 25 февраля 2012

Только что скачал плагин m2e Eclipse и полюбил его! Мне интересно, какой веб-сервис он использует для разрешения всех транзитивных зависимостей проекта.

I предполагает , что он работает путем анализа всех элементов <dependency> из проекта pom.xml и использует сервис для запроса Maven для каждой транзитивной зависимости.

По сути, я спрашиваю: как m2e заполняет локальный кеш Maven, хранящийся в ~/.m2?

Ответы [ 3 ]

3 голосов
/ 25 февраля 2012

Запустив обычный процесс разрешения зависимостей Maven;для каждой зависимости он рекурсивно разрешает транзитивные зависимости.«Сервис» - это просто запрос POM зависимостей из любых настроенных репозиториев Maven.

2 голосов
/ 25 февраля 2012

Плагин работает так же, как программа Maven командной строки Progam Mvn.

При условии, что файл настроек POM и Maven вашего проекта не меняет настройки репозитория по умолчанию, Maven будет загружать файлы из Maven Central

http://repo1.maven.org/maven2/

Итак, взяв зависимость следующим образом:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.16</version>
</dependency>

Maven будет использовать следующее соглашение URL (макет репозитория Maven2):

<Repository URL>/<groupId>/<artifactId>/<version>/<artifactId>-<version>.<packaging>

Для загрузки 2 файлов:

  1. http://repo1.maven.org/maven2/log4j/log4j/1.2.16/log4j-1.2.16.pom
  2. http://repo1.maven.org/maven2/log4j/log4j/1.2.16/log4j-1.2.16.jar

Первым является модуль POM, чей элемент packaging будет указывать расширение имени файла, которое будет использоваться при загрузке второго файла (по умолчанию «jar»).

Наконец, Maven рекурсивно прочитает файлы POM, связанные с другими зависимостями, перечисленными в POM, и решит, какие другие модули загрузить (Зависимости зависимостей)

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

Я не уверен, как m2e делает это конкретно, но вы можете сделать то же самое в командной строке, используя mvn dependency:tree.Эта команда поддерживает различные форматы вывода: text, dot, graphml, tgf.См. документы по подключаемым модулям maven .

...