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.