나는이 개 프로젝트는 Gradle을 의존성 관리를 사용하게 IntelliJ IDEA 2016에서 편집 한 :Gradle을 종속성 관리 - 이적 종속성 버전 잘못된
: 프로젝트 A와 프로젝트 B를프로젝트 A는 같은 elasticsearch에 대한 컴파일 범위 의존성을 정의
compile 'com.mycompany:elasticsearch-common:2.3.1'
내가 기대, 인텔리의 Gradle을 도구 창에서 :
compile 'org.elasticsearch:elasticsearch:2.3.1'
프로젝트 B는 그래서 프로젝트 A에 대한 컴파일 범위 의존성을 선언 프로젝트 B에 대한 J의 IDEA 2016, 볼 수 있습니다 :
...
com.mycompany:elasticsearch-common:2.3.1 (Compile)
org.elasticsearch:elasticsearch:2.3.1 (Compile)
...
대신 나는 참조 : 그것은 또 다른 의존성 선언에 의해 무시하지 그래서
...
com.mycompany:elasticsearch-common:2.3.1 (Compile)
org.elasticsearch:elasticsearch:1.5.2 (Compile)
...
프로젝트 B에 다른 의존성, elasticsearch에 따라 달라집니다.
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.3.1</version>
<scope>compile</scope>
</dependency>
가 왜 인 IntelliJ가 1.5.2 인 것으로 elasticsearch의 전이 버전을보고 :
사실, 프로젝트 A에 대한 우리의 넥서스에 pom.xml 파일이있다? 나는 무엇을 시도했다
:
- 는
- 가 Gradle을 캐시 삭제 프로젝트 B 디렉토리 내부 .idea 및 .gradle 삭제
- 마시는 많은 욕설
- 캐시를 무효화하고 IntelliJ를
- 에서 다시 시작 차
- 친구와 동료들에게 물어보기
- 이메일 전송 오프라
- 이 모든 (지금은 더 이상 IS)
- (5 관련) 화장실에 가서 희망 난 다시
을받을 때 마술 자체를 해결 잘 때 인 IntelliJ (15)로 되돌리기 위의 작업은 없습니다.
프로젝트 B에서 특별히 elasticsearch:2.3.1
종속성을 지정하는 작업은 수행하지만, 전 이적 종속성에 대한 전체 이유를 무효화하지는 않습니까?
도움을 주시면 감사하겠습니다. 코멘트에 LanceJava에 의해 제안
업데이트 1
, 나는 무슨 일이 일어 났는지 볼 gradle dependencies
을 달렸다.
이것은 구체적으로 다운 그레이드 있다고 보여줍니다
:dependencyInsight
com.mycompany:elasticsearch-common:2.3.1 (selected by rule)
\--- compile
org.elasticsearch:elasticsearch:1.5.2 (selected by rule)
org.elasticsearch:elasticsearch:2.3.1 -> 1.5.2
\--- com.mycompany:elasticsearch-common:2.3.1
\--- compile
누구나 이런 일이 왜 어떤 아이디어가 : 내가 생각 해낸 그 의존성에 Gradle을 dependencyInsight를 실행
org.elasticsearch:elasticsearch:2.3.1 -> 1.5.2
?
업데이트 2이 답이 보인다
: https://discuss.gradle.org/t/excluded-dependence-comes-back-when-spring-boot-plugin-is-applied/17945/2
Gradle을 봄 부팅 플러그인이 조금 인수하고 아니에요에도 불구하고 (자신의 의존성 버전의 시행을 좋아하는 것 같다을 스프링 데이터를 사용하는 스프링 부트 스타터 사용).
나는 추가하여이 고정 : 내 build.gradle 파일에ext[elasticsearch.version] = '2.3.1'
.
'gradle dependencies' fom 명령 줄을 사용해보십시오. 무슨 일이 일어나는지 말해 줄 것입니다. 아마도 사용자 정의 [ResolutionStrategy]가 있습니다 (https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html) –
@ LanceJava 감사합니다!나는 이것을했고 구체적으로 등급을 낮추는 것처럼 보입니다 : org.elasticsearch : elasticsearch : 2.3.1 -> 1.5.2 dependencyInsight를했을 때 다음과 같이 나타났습니다. org.elasticsearch : elasticsearch : 1.5.2 (선택됨) 규칙에 따라) org.elasticsearch : elasticsearch : 2.3.1 -> 1.5.2 \ --- com.mycompany : elasticsearch-common : 2.3.1 \ --- runtime – ndtreviv
@LanceJava 업데이트를 확인하십시오. – ndtreviv