많은 모듈과 많은 pom.xml
파일을 가진 큰 Maven 프로젝트가 있습니다. 프로젝트가 변경되었으며 pom에 불필요한 종속성이 포함되어 있다고 생각합니다. pom에서 사용되지 않는 종속성을 제거하는 명령이 있습니까?
많은 모듈과 많은 pom.xml
파일을 가진 큰 Maven 프로젝트가 있습니다. 프로젝트가 변경되었으며 pom에 불필요한 종속성이 포함되어 있다고 생각합니다. pom에서 사용되지 않는 종속성을 제거하는 명령이 있습니까?
답변:
메이븐 종속성 플러그인은 , 특히 도움이 될 것입니다 dependency:analyze
목표 :
dependency:analyze
이 프로젝트의 종속성을 분석하고 사용 및 선언 된 사항을 결정합니다. 사용 및 선언되지 않은; 사용되지 않고 선언되었습니다.
일부 정리를 수행하는 데 도움이 될 수있는 또 다른 방법 은 Maven Project Info Reports 플러그인 의 Dependency Convergence 보고서 입니다 .
ignoreNonCompile
옵션을 true로 설정할 수 있습니다.
다른 사람들이 말했듯이 dependency : analyze 목표를 사용하여 사용 및 선언, 사용 및 선언되지 않은, 또는 사용되지 않은 선언 된 종속성을 찾을 수 있습니다. 종속성 을 찾을 수도 있습니다 : analyze-dep-mgtdependencyManagement 섹션에서 불일치를 찾는 데 유용 할 .
POM에서 원치 않는 직접 종속성을 간단히 제거 할 수 있지만 타사 jar에서 소개 된 경우 종속성에서 <exclusions>
태그를 사용하여 타사 jar를 제외 할 수 있습니다 ( 자세한 내용 및 일부 토론 은 종속성 제외 섹션 참조 ). . 다음은 Spring 종속성에서 commons-logging을 제외하는 예입니다.
<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>
Have you looked at the Maven Dependency Plugin ? That won't remove stuff for you but has tools to allow you to do the analysis yourself. I'm thinking particularly of
mvn dependency:tree
나는 비슷한 종류의 문제가 있었고 의존성을 제거하는 스크립트를 작성하기로 결정했습니다. 이를 사용하여 종속성의 절반 이상을 쉽게 제거했습니다.
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
mvn dependency:analyze
. 모든 종속성을 제거하려고 시도하고 mvn install
작동하는지 확인 합니다.