У меня большой проект Maven с многочисленными модулями и pom.xmls. и проект сильно изменился, что я уверен, что у pom должны быть некоторые ненужные зависимости в них. кто-нибудь знает, есть ли команда, которую вы можете запустить, чтобы удалить любые бессмысленные зависимости от pom?
Есть ли простой способ удалить неиспользуемые зависимости из maven pom.xml?
Ответ 1
Maven Dependency Plugin поможет, особенно цель dependency:analyze
:
dependency:analyze
анализирует зависимости этого проекта и определяет, какие: используются и объявляются; используемый и необъявленный; неиспользованный и объявленный.
Еще одна вещь, которая может помочь сделать некоторую очистку, - это Отчет о конвергенции зависимостей из Плагин отчетов Maven Project Info.
Ответ 2
Как говорили другие, вы можете использовать зависимость: проанализировать цель, чтобы определить, какие зависимости используются и объявлены, использованы и необъявлены или не используются и объявил. Вы также можете найти зависимость: analysis-dep-mgt, чтобы искать несоответствия в разделе зависимости .Management.
Вы можете просто удалить ненужные прямые зависимости из своего POM, но если они введены сторонними банками, вы можете использовать <exclusions>
теги в зависимости, чтобы исключить сторонние банки (см. раздел "Исключения зависимостей" для подробностей и некоторые обсуждения). Вот пример, исключающий ведение журналов из-за зависимости Spring:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.5</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
Ответ 3
Вы можете использовать dependency:analyze -DignoreNonCompile
Будет напечатан список зависимостей used undeclared
и unused declared
(при этом игнорируются области runtime
/provided
/test
/system
для неиспользованного анализа зависимостей.)
* Но будьте осторожны при использовании этого, некоторые библиотеки, используемые в runtime
, считаются неиспользованными!
Ответ 4
Вы посмотрели на Maven Dependency Plugin? Это не приведет к удалению вещей для вас, но у вас есть инструменты, позволяющие вам самим проводить анализ. Я особенно думаю о
mvn dependency:tree
Ответ 5
У меня была аналогичная проблема и я решил написать script, который удаляет зависимости для меня. Используя это, я довольно легко достал более половины зависимостей.
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
Ответ 6
В Ubuntu я просто удалил каталог Maven, используя rm -R ~/.m2. Затем я использовал проект Eclipse Project- > Clean... Clean. Когда Eclipse будет строить проект, он загрузит необходимые библиотеки для меня.