[SPRING] Maven 종속성의 순서가 중요한 이유는 무엇입니까?
SPRINGMaven 종속성의 순서가 중요한 이유는 무엇입니까?
나는 Maven 의존성의 순서가 중요하지 않다고 생각하고 이것을 이것을 프로라고 생각한다. 그리고 이것은 내 오래된 pom.xml의 의존성입니다 :
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.19</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-spring3</artifactId>
<version>2.19</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<version>2.19</version>
</dependency>
</dependencies>
그것은 잘 작동하고, 오늘은 저지 관련이 함께 할 수 있도록 바닥에 스프링 의존성을 옮기고 싶습니다. 그러나 더 이상 작동하지 않게 될 수 있습니다. 제 부두가 불평합니다.
[ERROR] Failed to execute goal org.eclipse.jetty:jetty-maven-plugin:9.3.0.M1:run (default-cli) on project mtest: Execution default-cli of goal org.eclipse.jetty:jetty-maven-plugin:9.3.0.M1:run failed: A required class was missing while executing org.eclipse.jetty:jetty-maven-plugin:9.3.0.M1:run: org/apache/commons/logging/LogFactory
정말 혼란 스럽기 때문에 종속성 순서에 관심을 가져야합니까? 올바른 순서를 어떻게 알 수 있습니까?
해결법
-
==============================
1.의존성의 순서는 버전 2.0.9부터 Maven이 전이 의존성을 해결하는 방법 때문에 중요합니다. 문서에서 발췌 :
의존성의 순서는 버전 2.0.9부터 Maven이 전이 의존성을 해결하는 방법 때문에 중요합니다. 문서에서 발췌 :
-
==============================
2.다른 답변 (선언 순서가 Maven의 종속성 중재에 영향을 준다는 내용)을 확장하기 위해 사용할 수있는 몇 가지 도구가 있습니다.
다른 답변 (선언 순서가 Maven의 종속성 중재에 영향을 준다는 내용)을 확장하기 위해 사용할 수있는 몇 가지 도구가 있습니다.
나는 당신의 상황에 대해 많이 알지 못하지만 컴파일 / 런타임시 하나 이상의 항아리가 잘못된 버전으로 출시되는 경우가 종종 있습니다. 해당 라이브러리의 자신의 버전을 선언하거나
를 사용하여 버전을 잠그는 것은 여기에있는 옵션입니다. 이제 다른 질문에 대답하십시오 - 종속성을 선언 할 때 올바른 순서가 무엇인지 어떻게 알 수 있습니까?
내 제안 - 올바른 선언 순서는 원하는 종속성의 버전을 원하는 순서대로 가져 오는 순서입니다. 위의 도구를 사용하여 종속성을 확인하고 필요한 경우 선언 된 순서를 미세 조정하십시오.
대부분의 jar에는 분리 된 이름의 클래스가 포함되어 있으므로 jar가 클래스 경로에 나타나는 정확한 순서는 대개 중요하지 않습니다. 내가 주목 한 유일한 예외는 SLF4J의 일부 항아리가 의도적으로 대체하려는 다른 로거 라이브러리의 클래스를 섀도 잉하는 것입니다.
from https://stackoverflow.com/questions/31740785/why-order-of-maven-dependencies-matter by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Groovy에서 @Value Spring Annotation 사용하기 (0) | 2019.02.06 |
---|---|
[SPRING] Spring 3.0은 파일을 리소스로 삽입한다. (0) | 2019.02.06 |
[SPRING] Spring 3.1 entityManagerFactory java.lang.NoSuchFieldError : NULL 오류 (0) | 2019.02.06 |
[SPRING] Spring MVC : 여러 URL을 동일한 컨트롤러에 매핑 (0) | 2019.02.06 |
[SPRING] 스프링 테스트에서 환경 변수 또는 시스템 속성을 설정하는 방법? (0) | 2019.02.06 |