2017-12-21 3 views
0

Gradle은 여러 범위를 지정하기 위해 버전에서 쉼표를 지원합니까?gradle은 여러 범위를 지정하기 위해 버전에서 쉼표를 지원합니까?

같은

dependencies { 
    compile 'org.webjars.npm:minimatch:2.+,3.+' 
} 

또는 :

compile 'org.webjars.npm:minimatch:[2,3),[3,4)' 

It is allowed in Maven :

(1.0], [1.2) X < = 1.0 x> = 1.2. 다수의 세트는 콤마로 분리된다

(1.1) (1.1)이이 라이브러리

내용과 조합하여 작동하지 알려진 경우 이 1.1 제외 :

dependencies { 
    compile(group: 'org.webjars.npm', name: 'glob', version: '5.0.15') { 
} 

Execution failed for task ':dump'. 
> Could not resolve all files for configuration ':runtime'. 
    > Could not find org.webjars.npm:minimatch:[2,3),[3,4). 
    Searched in the following locations: 
    https://repo1.maven.org/maven2/org/webjars/npm/minimatch/[2,3),[3,4)/minimatch-[2,3),[3,4).pom 
    https://repo1.maven.org/maven2/org/webjars/npm/minimatch/[2,3),[3,4)/minimatch-[2,3),[3,4).jar 
    https://jcenter.bintray.com/org/webjars/npm/minimatch/[2,3),[3,4)/minimatch-[2,3),[3,4).pom 
    https://jcenter.bintray.com/org/webjars/npm/minimatch/[2,3),[3,4)/minimatch-[2,3),[3,4).jar 
Required by: 
    project : > org.webjars.npm:glob:5.0.15 

답변

1

나는하지 않습니다. 잉크 받침대는 아직 여러 버전 범위를 지원하지만 단일 범위는 지원하지 않습니다. 문제 추적기에서 이것이 이미보고되었는지 여부를 검색하고 그렇지 않은 경우 새로운 문제점을 열어야하므로 결국 해결 될 수 있습니다.

문제를 해결하려면 여러 버전을 사용하지 않고 단일 범위 만 사용하는 최신 버전에서 해당 라이브러리의 최신 버전을 사용할 수 있습니다.
또는 전 이적 종속성을 제외하고 버전을 직접 포함하거나 해당 범위의 특정 버전을 선택하는 종속성 해결 규칙을 작성할 수 있습니다. 이들의

은 여전히 ​​ glob의 세 버전을 사용하려는 경우 내가 말할 것입니다 도움이 될 것입니다.
configurations.all { 
    resolutionStrategy.dependencySubstitution { 
     substitute module("org.webjars.npm:minimatch") with module("org.webjars.npm:minimatch:3.0.4") 
    } 
} 
dependencies { 
    compile(group: 'org.webjars.npm', name: 'glob', version: '5.0.15') { 
     exclude group: 'org.webjars.npm', module: 'minimatch' 
    } 
    runtime 'org.webjars.npm:minimatch:3.+' 
} 


configurations.all { 
    resolutionStrategy.eachDependency { 
     if ((it.requested.group == 'org.webjars.npm') && (it.requested.name == 'minimatch')) { 
      it.useTarget group: it.requested.group, name: it.requested.name, version: '3.0.4' 
     } 
    } 
} 
+1

https://github.com/gradle/gradle/issues/3869 - * 버전 범위 목록에 대한 일시적인 종속성으로 인해 빌드 * – gavenkoa

0

Gradle을 종속성을 해결하기 위해 아이비를 사용합니다 : 그것은 실패했습니다

at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.resolveModule(RepositoryChainComponentMetaDataResolver.java:105) 

와 아이비는 적어도 내가 문서에서 예를 찾을 수없는 버전의 목록을 지원하지 않습니다 : 평소와 같이

I 고정 문제 :

dependencies { 
    compile(group: 'org.webjars.npm', name: 'glob', version: '5.0.15') { 
     exclude module: 'minimatch' 
    } 
    compile 'org.webjars.npm:minimatch:3.0.4' 
} 
+1

Gradle을이 **하지 않습니다 ** 의존성 해결을 위해 아이비를 사용합니다. 그것은 일부 Ivy 구문을 지원하고 Ivy 저장소를 지원하지만 완전한 자체 의존성 해결 메커니즘을 가지고 있습니다.Gradle은 현재 여러 범위를 지원하지 않으며 해결 방법은 해결 방법 중 하나이지만 Ivy 설명서는 적합하지 않으며 Ivy가 종속성 확인에 사용된다는 진술은 분명히 잘못되었습니다. :-) – Vampire

관련 문제