Programing

maven pom.xml에서 사용되지 않는 종속성을 제거하는 간단한 방법이 있습니까?

lottogame 2020. 4. 7. 08:16
반응형

maven pom.xml에서 사용되지 않는 종속성을 제거하는 간단한 방법이 있습니까?


수많은 모듈과 pom.xmls가있는 큰 Maven 프로젝트가 있습니다. 그리고 프로젝트는 그 폼폼이 불필요한 의존성을 가져야한다고 확신합니다. pom에서 무의미한 종속성을 제거하기 위해 실행할 수있는 명령이 있는지 아는 사람이 있습니까?


메이븐 종속성 플러그인은 , 특히 도움이 될 것입니다 dependency:analyze목표 :

dependency:analyze이 프로젝트의 종속성을 분석하고 사용 및 선언 된 사항을 결정합니다. 사용 및 선언되지 않은; 사용되지 않고 선언되었습니다.

정리를하는 데 도움이되는 또 다른 방법 Maven Project Info Reports PluginDependency Convergence 보고서 입니다 .


다른 사람들이 말했듯이 dependency : analyze 목표를 사용하여 사용 및 선언, 사용 및 선언되지 않은, 또는 사용되지 않은 선언 된 종속성을 찾을 수 있습니다. dependencyManagement 섹션에서 불일치를 찾는 데 dependency : analyze-dep-mgt가 유용 할 수도 있습니다 .

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>

당신이 사용할 수있는 dependency:analyze -DignoreNonCompile

사용하지 않는 종속성 분석에 대해 / / / 범위를 무시하면서 종속성 used undeclared목록을 인쇄합니다 .unused declaredruntimeprovidedtestsystem

그러나 이것을 사용하는 동안 조심하십시오. 사용 된 일부 라이브러리는 사용runtime되지 않은 것으로 간주됩니다!


Maven Dependency Plugin을 보셨습니까 ? 그것은 당신을 위해 물건을 제거하지는 않지만 직접 분석을 수행 할 수있는 도구가 있습니다. 나는 특히 생각하고있다

mvn dependency:tree

나는 비슷한 종류의 문제가 있었고 의존성을 제거하는 스크립트를 작성하기로 결정했습니다. 이를 사용하여 종속성의 절반 이상을 쉽게 제거했습니다.

http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html

참고 URL : https://stackoverflow.com/questions/1517611/is-there-a-simple-way-to-remove-unused-dependencies-from-a-maven-pom-xml

반응형