Maven: Как найти артефакты, которые зависят от другого артефакта - PullRequest
6 голосов
/ 20 января 2011

Допустим, ArtifactA зависит от ArtifactB, а ArtifactC также зависит от ArtifactB

Я понимаю, что «плагин зависимостей mvn» может помочь перечислить зависимости проекта / артефакта.

Но какоб обратном?Если я хочу найти список проектов / артефактов, которые зависят от данного артефакта?Из приведенного выше примера, учитывая ArtifactB, я хотел бы получить ArtifactA и ArtifactC

Как мне этого добиться?

Ответы [ 2 ]

5 голосов
/ 20 января 2011

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

Итак, что вы можете сделать, это найти конкретные подмодули в зависимости от других подмодулей:

                      mycompany:parent
                    /                  \
         mycompany:child1       mycompany:child2
            /                 /                  \
  mycompany:grandchild1   mycompany:grandchild2   mycompany:grandchild3

Вот как вы можете найти все подпроекты, имеющие зависимости от grandchild3:

mvn validate -pl child2/grandchild3 -amd

Это запустит фазу validate для всех проектов в текущем проекте, которые зависят от grandchild3.

2 голосов
/ 20 января 2011

Это совсем не просто. Одним из вариантов является использование m2eclipse, который имеет функцию под названием Поиск класса . В представлении maven репозитории щелкните правой кнопкой мыши репозиторий и включите полный индекс. Затем перейдите> Открыть тип из maven - там вы можете просмотреть все доступные артефакты в соответствии с соглашением о пакете Java.

Другой вариант - разработать собственный инструмент, например, на основе JarAnalyzer, который будет принимать файл JAR и искать в вашем локальном хранилище maven, ища наиболее подходящие артефакты, которые удовлетворяют импортированным пакетам / классам из JAR.

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