2013-10-31 5 views
2

여러 프로젝트 빌드가 있고 하나 이상의 하위 프로젝트가 깨진 모듈에 종속되어 있습니다. 모듈 종속성을 로컬 JAR 파일에 대한 종속성으로 바꾸려고합니다.어떻게 gradle 모듈 종속성을 jar 파일로 대체합니까?

나는 해봤 (정말 일을 기대하지 않았다)하지만, 손실의 비트에서이시를 넘어 다음

configurations.all { 
    resolutionStrategy { 
     failOnVersionConflict() 

     eachDependency { DependencyResolveDetails details -> 
      if (details.requested.group == "com.android.support" && details.requested.name == "support-v4") { 
       details.useTarget("lib/android-support-v4-fixed.jar") 
      } 
     } 
    } 
} 

가 어떻게 하위 프로젝트에 모듈 의존성을 대체 할 수 파일 (예 : JAR)에 대한 의존성이 있습니까?

답변

2

있는 유효한 치어 메타하고 내가 원하는 것을 달성 할 수 있었다한다 아주 간단합니다.

configurations.all { 
    exclude group: 'com.android.support', module: 'support-v4' 
} 

dependencies { 
    compile files('libs/support-v4.jar') 
} 

위의 모든 모듈에 대한 받는다는 의존성을 (등 라이브러리와 잘 작동) 제외되며,이 경우 우리는 안드로이드 지원 라이브러리를 제외했습니다. 그런 다음 정기적으로 jar 종속성으로 자체 지원 라이브러리 (여러 버그 수정 포함)를 추가하기 만하면됩니다.

0

FlatDir 저장소를 만들고 거기에 항아리를 넣으십시오.

+0

어떻게 수행하나요? –

1

당신은 다음과 같이 로컬 저장소를 추가하여이 작업을 수행 할 수 있습니다 :

configure(allprojects) { 
    repositories {                           
     maven { 
      url "../repo" // this is relative to subproject, so assumes all subprojects are in the same folder 
     } 

     // ... other repositories 

} 

고정 항아리가 MVN 폴더 구조를 사용하여 디렉토리를 REPO에 투입되어야한다. 는 경우를 들어 두 개의 파일/COM/안드로이드/지원/지원-V4를 REPO에 추가해야합니다

support-v4-r6-fixed.jar 
support-v4-r6-fixed.pom 

주 : 파일이 <artifactId>-<version>.<ext> 같은 이름을 지정해야하고이 치어의 값과 일치해야합니다.

POM을 내가 많은 문서를 통해 기어 결국 같은 콘텐츠 (깨진 버전에 대한 기존의 치어를 사용하여 작성)

<?xml version="1.0" encoding="UTF-8"?>                                 
    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
     <modelVersion>4.0.0</modelVersion> 
     <groupId>com.android.support</groupId> 
     <artifactId>support-v4</artifactId> 
     <version>r6-fixed</version> 
    </project> 
관련 문제