2013-10-22 5 views
3

내 안드로이드 앱은 Gradle을 기반으로하며 매번 빌드 할 때 시간이 오래 걸립니다. 이것은 제가 가지고있는 모듈의 수 때문입니다. 서브 모듈에 변경 사항이 없더라도 모든 소스를 재구성합니다. 자주 업데이트하지 않기 때문에 이러한 모듈을 로컬 스냅 샷 종속성으로 변환 할 수있는 방법이 있는지 궁금합니다. 나는 그것이 가능할 것이라고 확신하지만, 나는 gradle과 maven에 대한 아주 기본적인 경험을 가지고있어서 그렇게 할 수있는 간단한 방법을 찾을 수 없다.Android Gradle에서 로컬 스냅 샷 종속성을 사용할 수있는 방법이 있습니까?

dependencies { 

    compile project(':Library:lib1') 
    compile project(':Library:lib2') 
    compile project(':Library:lib3') 
} 

와 나는 같은 것을 사용하고 싶습니다 :

는 기본적으로 지금 나는 그런 내 종속성을 나열하고있어

repositories { 
    local() 
} 

dependencies { 

    compile 'com.lib1:lib:SNAPSHOT-1.0') 
    compile 'com.lib2:lib:SNAPSHOT-1.0') 
    compile 'com.lib3:lib:SNAPSHOT-1.0') 
} 
+1

하위 프로젝트를 다시 컴파일 하시겠습니까? 도서관 프로젝트에서 얻은 자료를 병합하기는하지만 제가 가지고있는 프로젝트에서는 그렇게 보이지 않습니다. 나는 어딘가에서 libs 얻을 때 변경하지 않을 것 같아요 ... – botteaap

+0

글쎄, 컴파일하는 경우 잘 모르겠지만 모듈로 물건을하고있어. 커맨드 라인을 통해 실행하는 것이 훨씬 빠릅니다 (빨리 실행하기위한 해결 방법으로 쉘 스크립트를 사용하게 될 것입니다). 하지만 심지어 모듈 (mergeReleaseAssets, mergeReleaseResources, processReleaseManifest 등)을 사용하여 작업을 수행하는 동안 원격 컴파일 된 종속성을 사용하지 않습니다. –

+0

Gradle의 출력은 무엇입니까? lib1을 만들 때 "UP-TO-DATE"라고 말합니까? 이 경우 libs 빌드를 건너 뜁니다. 부분 빌드는 주요 Gradle 기능 중 하나입니다. –

답변

0

maven-publish 플러그인을 사용 로컬 스냅 샷을 사용합니다. 버전에서 SNAPSHOT을 사용하는 경우 (예 : 0.0.1-SNAPSHOT) 스냅 샷을 로컬 저장소에 게시합니다.

apply plugin: 'java' 
apply plugin: 'maven-publish' 

project.version=0.0.1-SNAPSHOT 

publishing { 
    publications { 
     maven(MavenPublication) { 
      from components.java 
     } 
    } 
} 

을하고 실행합니다 : LIB1에 대한 build.gradle를 들어 다음과 같이해야합니다 publishMavenPublicationToMavenLocal 목표. 라이브러리를 사용하여 프로젝트 파일을 작성 Gradle을에서

:

repositories { 
    local() 
} 

dependencies { 
    compile group: 'com.lib1', name: 'lib', version: 'SNAPSHOT-0.0.1', changing: true 
} 

'변화'속성은하지 캐시 된 버전을 사용하는 것을 나타냅니다 (일반적으로 한 번씩 24 시간 업데이트)하지만 항상 최신 확인합니다.

관련 문제