Есть ли простой способ удалить неиспользуемые зависимости из maven pom.xml?

У меня большой проект Maven с многочисленными модулями и pom.xmls. и проект сильно изменился, что я уверен, что у pom должны быть некоторые ненужные зависимости в них. кто-нибудь знает, есть ли команда, которую вы можете запустить, чтобы удалить любые бессмысленные зависимости от pom?

Ответ 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 будет строить проект, он загрузит необходимые библиотеки для меня.