2016-07-01 5 views
0

우리는 다음과 같은 의존성이 : 문서에 대한 우리의 이해에 따르면왜 내 gradle 빌드가 최신 종속성을로드하지 않습니까? 우리 Gradle을 대부분의 프로젝트에서

compile('com.xxx.yyy.zzz:ch-commons:+') 

를, 이것은 우리 받는다는 저장소에서 ch-commons의 최신 버전을 검색 할 예정이다.

TL;

우리의 실제 "최신 버전의"DR은 1.7.0-SNAPSHOT이지만, Gradle을가 1.6.0-SNAPSHOT를 검색 실제로입니다.

다음과 같이

우리의 저장소 구성은 전체 이야기 :

repositories { 
    maven { url 'https://local-repo/artifactory/apps-release-local' } // company application release builds 
    maven { url 'https://local-repo/artifactory/apps-snapshot-local' } // company application snapshot builds 
    maven { url 'https://local-repo/artifactory/repo1' }    // company lazy mirror of central repos 
    mavenCentral() 
    jcenter() 
} 

나는 apps-release-local를 제외하고 이러한 위치 중 하나에는 ch-commons 유물이 없음을 확인했습니다. 그리고 apps-release-local에서 우리는 다음과 같은 내용을 (SHA1, MD5, 및 메타 데이터 파일 생략)가 다음 1.7.0-SNAPSHOT 디렉토리 내에 찾고

Index of apps-snapshot-local/com/xxx/yyy/zzz/ch-commons 

Name       Last modified  Size 
../ 
1.0.1-SNAPSHOT/    07-Apr-2016 16:09 - 
1.0.2-SNAPSHOT/    08-Apr-2016 11:03 - 
1.0.3-SNAPSHOT/    08-Apr-2016 14:32 - 
1.0.4-SNAPSHOT/    13-Apr-2016 12:33 - 
1.1.0-SNAPSHOT/    15-Apr-2016 12:37 - 
1.2.0-SNAPSHOT/    17-May-2016 13:16 - 
1.2.1-SNAPSHOT/    18-May-2016 14:28 - 
1.3.0-SNAPSHOT/    14-Jun-2016 15:42 - 
1.4.0-SNAPSHOT/    17-Jun-2016 11:57 - 
1.5.0-SNAPSHOT/    17-Jun-2016 13:42 - 
1.5.1-SNAPSHOT/    21-Jun-2016 16:16 - 
1.6.0-SNAPSHOT/    22-Jun-2016 09:27 - 
1.6.2-SNAPSHOT/    30-Jun-2016 22:02 - 
1.6.3-SNAPSHOT/    01-Jul-2016 10:42 - 
1.7.0-SNAPSHOT/    01-Jul-2016 13:34 - 

을 우리는 (같은 물건 생략) 다음과 같은 내용이 있습니다

Index of apps-snapshot-local/com/xxx/yyy/zzz/ch-commons/1.7.0-SNAPSHOT 

Name             Last modified  Size 
../ 
ch-commons-1.7.0-20160701.183333-1-sources.jar  01-Jul-2016 13:34 14.54 KB 
ch-commons-1.7.0-20160701.183333-1.jar    01-Jul-2016 13:34 22.19 KB 
ch-commons-1.7.0-20160701.183333-1.pom    01-Jul-2016 13:34 2.21 KB 

<?xml version="1.0" encoding="UTF-8"?> 
<metadata> 
    <groupId>com.xxx.yyy.zzz</groupId> 
    <artifactId>ch-commons</artifactId> 
    <version>1.6.3-20160701.154200-1</version> 
    <versioning> 
    <latest>1.7.0-SNAPSHOT</latest> 
    <versions> 
     <version>1.0.1-SNAPSHOT</version> 
     <version>1.0.2-SNAPSHOT</version> 
     <version>1.0.3-SNAPSHOT</version> 
     <version>1.0.4-SNAPSHOT</version> 
     <version>1.1.0-SNAPSHOT</version> 
     <version>1.2.0-SNAPSHOT</version> 
     <version>1.2.1-SNAPSHOT</version> 
     <version>1.3.0-SNAPSHOT</version> 
     <version>1.4.0-SNAPSHOT</version> 
     <version>1.5.0-SNAPSHOT</version> 
     <version>1.5.1-SNAPSHOT</version> 
     <version>1.6.0-SNAPSHOT</version> 
     <version>1.6.2-SNAPSHOT</version> 
     <version>1.6.3-SNAPSHOT</version> 
     <version>1.7.0-SNAPSHOT</version> 
    </versions> 
    <lastUpdated>20160701183429</lastUpdated> 
    </versioning> 
</metadata> 

을 또한 우리가 명시 적 V를 참조하는 의존 관계 선언을 변경하는 경우, 다음과 같이 apps-snapshot-local/com/xxx/yyy/zzz/ch-commons/maven-metadata-2.xml 내용은 그 다음 올바른 버전 1.7.0-SNAPSHOT을 검색하여 "올바르게"작동합니다.


그럼, 왜 다음 최신 버전을 검색 + 버전 와일드 카드로 설정 종속성이 아닌가요?

+0

무엇 받는다는 메타 데이터 파일의 상태를? – JBaruch

+0

나는이 질문을 게시 한 후 실제로''''1.7.0-SNAPSHOT'''에 부딪 혔습니다. 그래서''''maven-metadata-2.xml''은 최신 내용입니다. 하지만 내 로컬 빌드는 여전히''1.6.0-SNAPSHOT''을 검색하고 있습니다. – BalRog

+0

질문의 Curent 편집에는 Maven 메타 데이터 파일의 전체 내용이 포함되어 있습니다. – BalRog

답변