Намерете неизползвани зависимости на Maven

1. Общ преглед

Когато използваме Maven за управление на нашите проектни зависимости, можем да загубим представа какви зависимости се използват в нашето приложение.

В този кратък урок ще разгледаме как да използваме приставката за зависимост Maven , приставка, която ни помага да намерим неизползвани зависимости в нашия проект.

2. Настройка на проекта

Нека започнем с добавяне на няколко зависимости, slf4j-api (тази, която ще използваме) и common-колекции (тази, която няма да използваме):

  commons-collections commons-collections 3.2.2   org.slf4j slf4j-api 1.7.25   

Можем да осъществим достъп до приставката за зависимост на Maven, без да я посочваме в нашия pom. Във всеки случай можем да използваме дефиницията pom.xml, за да посочим версията, а също и някои свойства, ако е необходимо:

   maven-dependency-plugin 3.1.2   

3. Пример за код

Сега, когато сме настроили нашия проект, нека напишем ред с код, където използваме една от зависимостите, които дефинирахме преди:

public Logger getLogger() { return LoggerFactory.getLogger(UnusedDependenciesExample.class); }

В LoggerFactory от библиотеката Slf4J се връща в метод, но няма ползване на библиотеката общи колекции, което го прави кандидат за премахване.

4. Намерете неизползвани зависимости

Използвайки приставката за зависимости Maven, можем да намерим зависимостите, които не се използват в нашия проект. За това извикваме целта за анализ на приставката:

$ mvn dependency:analyze [INFO] --- maven-dependency-plugin:3.1.1:analyze (default-cli) @ maven-unused-dependencies --- [WARNING] Unused declared dependencies found: [WARNING] commons-collections:commons-collections:jar:3.2.2:compile [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.225 s [INFO] Finished at: 2020-04-01T16:10:25-04:00 [INFO] ------------------------------------------------------------------------

За всяка зависимост, която не се използва в нашия проект, Maven издава предупреждение в доклада за анализ.

5. Посочете зависимостите като използвани

В зависимост от естеството на проекта, понякога може да се наложи да зареждаме класове по време на изпълнение, като например в проект, ориентиран към приставки.

Тъй като зависимостите не се използват по време на компилация, плъгинът maven-dependency ще издаде предупреждение, в което се посочва, че зависимостта не се използва, а всъщност е. За това можем да приложим и инструктираме приставката, че се използва библиотека.

Правим това, като изброяваме зависимостите в свойството usedDependencies :

 org.apache.maven.plugins maven-dependency-plugin   commons-collections:commons-collections   

Стартирайки отново целта за анализ , виждаме, че неизползваната зависимост вече не се разглежда в отчета.

6. Заключение

В този кратък урок научихме как да намираме неизползвани зависимости на maven. Добра практика е да проверявате редовно за неизползвани зависимости, тъй като подобрява поддръжката и намалява размера на библиотеката на нашия проект.

Както винаги, пълният изходен код с всички примери е достъпен в GitHub.