Как узнать, почему банку был включен Maven?

Мы используем Maven 3 с IntelliJ для нашей среды разработки. После компиляции мы получаем кучу spring 2.0, которые включаются во внешние библиотеки. Если я просматриваю зависимости Maven Projects в Intellij, я не вижу никого с зависимостью от spring 2.0, поэтому я подозреваю, что мы зависим от того, от чего это зависит.

Мой вопрос в том, как я могу отследить это? Я попытался сделать mvn dependency:tree -Dverbose -Dincludes=spring-aop и даже -Dincludes=spring, но не получаю никаких результатов при запуске из каталога корневого каталога или вспомогательного модуля, который, как я знаю, использует spring.

Ответы

Ответ 1

Похоже, что шаблон, переданный в -Dincludes, неверен.

Из документации Maven Dependency Plugin синтаксис -Dincludes определяется StrictPatternIncludesArtifactFilter. Из javadoc AbstractStrictPatternArtifactFilter, из которого это подклассы,

Синтаксис шаблона артефактов Форма:

[groupId]:[artifactId]:[type]:[version]

Где каждый сегмент шаблона является необязательным и поддерживает полный и частичные * подстановочные знаки. Пустая диаграмма сегмент рассматривается как неявный подстановочные.

Например, org.apache.* будет соответствовать всем артефактам, чья группа id начинался с org.apache., а :::*-SNAPSHOT соответствовал бы всем моментальным снимкам артефакты.

Может быть, вы должны запустить mvn dependency:tree без -Dincludes и посмотреть, показывает ли он зависимую зависимость spring 2.0. В качестве альтернативы укажите соответствующий шаблон для -Dincludes.

Ответ 2

Формат, который вы ищете, неверен. Попробуйте следующее:

mvn dependency:tree -Dverbose -Dincludes=:spring*::

(Ищет любой артефакт с groupId, начинающийся с spring)

Или это:

mvn dependency:tree -Dverbose -Dincludes=org.springframework

(Ищет любой артефакт с artifactId org.springframework)

Ответ 3

Почему бы не использовать intellij и не исправить его. Откройте pom.xml, щелкните правой кнопкой мыши (вызовите контекстное меню) и выберите UML > показать зависимости (если у вас включен плагин UML). Идея будет отмечать все дубликаты зависимостей, и вы можете использовать комбинацию ALT + Enter для исключения зависимостей. @смотрите также: http://blogs.jetbrains.com/idea/2010/05/maven-dependencies-diagram/