2017-11-27 10 views
2

IntelliJ로 개발중인 Spring Boot 응용 프로그램에서 spring-restdocs-mockmvc의 버전 1.2.2를 사용하고 있습니다. enter image description herePOM에 선언 된 것보다 낮은 버전의 전이 종속성을 가져옴

그러나 어떤 이유로, 개발하는 동안 나에게 사용할 수 spring-restdocs-core의 컴파일 버전

은하지 않습니다 : 그 POM을 살펴보면

enter image description here

, 그것은 spring-restdocs-core 다음과 같은 의존성을 선언 이것과 일치하고, 나를 버전 1.1.2에 머물러있게 해줍니다.

enter image description here

내가 업데이트 한 깨끗한 다시 활력을 내 저장소는, 당신은, 내 Maven 프로젝트의 상태를 '새로 고침'하는 방법을 찾을 수있는 모든 것을 그것을 이름, 아무것도이 변경되지 않습니다, 설치합니다. 어떤 아이디어?

+4

mvn dependency : tree를 실행하고 다른 종속성에이 종속성이 있는지 확인하십시오. –

+3

다른 사람이'spring-restdocs-core'를 추가 한 종속성 트리를 확인하십시오. 어쩌면 프로젝트에 가까운 누군가가 버전을 무시할 수 있습니다. 당신이'dependencyManagement'를 체크해서 거기에 덮어 씌여 졌는지 확인하십시오. Maven 부모 (예 : Spring-Boot-parent)가 있으면 거기에 정의 된 버전을 확인하십시오. 이것들은 모두 의존성 버젼을 오버라이드 (override) 할 수 있습니다. – helospark

+2

'spring-boot-startter-parent' 의존성이 있다면, 관리되는 버전을 덮어 쓰려고하지 말아야합니다. (종속성을 추가 할 때 버전을 추가하지 마십시오.) 그렇지 않으면 의존성 버전이 다를 수 있습니다. 수동으로 덮어 쓰고 싶다면'spring-restdocs-core'도 정의해야합니다. – helospark

답변

3

spring.io에 블로그 게시물 here이 있습니다.이 사이트에서는 문제를 잘 파악하고 빌드를 Gradle로 이전하기 위해 Maven에서 XML을 사용하여 5 가지 가능한 솔루션을 제공합니다 (따라서 XML을 다스리는 일은 피할 수 있습니다). 해당 게시물은 "옵션이"당신을 위해 가장 쉬운 수 있습니다으로 제시 것 같은데,이 프로젝트에 있습니다

<properties> 
    <spring-restdocs.version>1.2.2.RELEASE</spring-restdocs.version> 
</properties> 

참고이는 것 같다 봄 부팅 스타터 부모를 사용한다고 가정 않습니다 합리적인 가정처럼. 나는 그것이 당신에게 mockmvc 의존성을 줄 것이라고 믿는다, 그래서 당신은 그 의존성의 당신의 기존 선언을 제거 할 수있다. 이 link도 유용 할 수 있습니다. 희망이 도움이됩니다!

+0

내 오타를 잡아주고 고쳐 주신 Andy에게 감사드립니다! – unigeek