최종 목표는 다른 버전으로 이적 종속성 버전을 대체하는 것입니다. 주의해야 할 점은 교체가 라이브러리가 건설되고 의존 사람들에 의해 선택해야한다는 것입니다 (이것은 표준 Gradle을 또는 플러그인의 경우 나도 몰라하지만 우리 exclude
이적 의존성 경우, 생성 ivy.xml
파일은 해당 정보가됩니다). 최종 목표를 달성하기 위해Gradle에서 어떻게 프로그래밍 방식으로 제외하고 종속성을 강제합니까?
한 가지 가능한 방법은 다음 문제의 의존성을 exclude
나중에 그 의존성을 강제하는 것입니다.
exclude
하는 방법
:
dependencies {
compile 'org:name:version' {
exclude(group: 'group', module: 'module')
}
}
가 force
의존하는 방법이 추천 무언가이다 두 함께 묶어 위해
configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails dependencyResolveDetails ->
final requestedDependency = dependencyResolveDetails.requested
if (requestedDependency.group == 'org' && requestedDependency.name == 'name') {
force 'group:module:good_version'
}
}
}
}
상기 resolutionStrategy
어떤 종속성이 실제로 exclude
d인지 알고 있어야하며 나중에 종속성은 force
d가됩니다. 어떻게 이것을 일반적인 방법으로 할 수 있습니까? (exclude
을 수행하는 일반적인 방법이 있다고 가정합니다)? 둘을 묶는 방법이 없다면 최종 목표를 달성하는 다른 방법이 있습니까?
{ '프로젝트를 다른 라이브러리를'} \ n 컴파일 '다른 라이브러리를 : 프로젝트 : XYZ'그룹을 제외 –
를 라이브러리 프로젝트 내부에 전이가있는 경우 당신은 즉 로거 라이브러리 사용을 제공, 부모 프로젝트에 가져와야 컴파일하는 대신에. 그러면 부모 프로젝트에서 나중에 컴파일해야하는 라이브러리의 가상 버전이 생깁니다. –
MLProgrammer-CIM @, 그것은 멀티 모듈 프로젝트이기 때문에 나는 프로그래밍을하고 싶은 나는 DRY 일을 계속하고 싶다. –