사용하지 않는 Maven 종속성 찾기

1. 개요

Maven을 사용하여 프로젝트 종속성을 관리 할 때 애플리케이션에서 사용되는 종속성을 추적하지 못할 수 있습니다.

이 짧은 튜토리얼에서는 프로젝트에서 사용하지 않는 종속성을 찾는 데 도움이되는 플러그인 인 Maven 종속성 플러그인을 사용하는 방법을 다룹니다 .

2. 프로젝트 설정

slf4j-api (우리가 사용할 것)와 common-collections (사용하지 않을 것) 의 몇 가지 종속성을 추가하는 것으로 시작하겠습니다 .

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

pom에서 지정하지 않고도 Maven 종속성 플러그인에 액세스 할 수 있습니다. 어쨌든 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-plugin 은 실제로 사용중인 경우 종속성이 사용되지 않는다는 경고를 발행합니다. 이를 위해 라이브러리가 사용되고 있음을 플러그인에 적용하고 지시 할 수 있습니다.

usedDependencies 속성 내에 종속성을 나열하여이를 수행 합니다.

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

분석 목표를 다시 실행하면 사용되지 않는 종속성이 더 이상 보고서에서 고려되지 않음을 알 수 있습니다.

6. 결론

이 짧은 튜토리얼에서는 사용하지 않는 Maven 종속성을 찾는 방법을 배웠습니다. 유지 보수 가능성을 높이고 프로젝트의 라이브러리 크기를 줄이므로 사용하지 않는 종속성을 정기적으로 확인하는 것이 좋습니다.

항상 그렇듯이 모든 예제가 포함 된 전체 소스 코드는 GitHub에서 사용할 수 있습니다.