2013-04-25 3 views
4

Gradle을 사용하여 Android 프로젝트를 빌드하려고합니다. 그것은 구조 다음있다android-gradle multiproject 라이브러리 포함 및 제외

:

situtation을 바탕으로
ProjectA----- MainProject, 
LibA  ---- Library project, 
LibB  ---- Library project, 
LibC  ---- Library project, 
LibD  ---- Library project, 
etc... 

, 가끔 맛을 기반으로하는 모든 라이브러리, 1 라이브러리, 2, 3 등을 포함 할 필요가 라이브러리를 포함해야합니다. 설정 파일에는 모든 프로젝트가 포함되어 있습니다.

아무도 맛을 기반으로 라이브러리를 포함/제외하는 방법을 알고 있습니까?

종속성 블록을 시도했지만 오류가 발생했습니다. 다음

dependencies { 
if (task.name.matches('compileFlovor1'){ 
    exclude module: 'LibD' 
    } 
} 

오류가 샘플 코드입니다 : 방법을 찾을 수 없습니다 제외() 인수에 대한 [{모듈 = LibD}].

답변

6

당신이 따라 구성을 구성해야 맛 특정 종속성을 추가 할이 문제를 해결하는 안내하시기 바랍니다. ,

dependencies { 
    compile project(':library1') //library1 used in free and paid flavour 
    freeCompile project(':library2') 
    paidCompile project(':library3')  
    paidCompile project(':library4')  
    paidCompile project(':library5')  
} 

희망 도움 :

android { 
    productFlavors { 
     free 
     paid 
    } 
} 

는 다음 다음과 같은 방법으로 종속성 블록에 맛 특정 종속성을 설정할 수 있습니다 ", 유료"의 당신이 "무료"맛에 있다고 가정하자

건배, René

+0

감사합니다 르네 Grieschke ... 그것은 나를 위해 일했습니다. 대단히 감사합니다. 배제해도 가능합니까? – user2318724

+0

사용자 지정 방식으로 종속성을 처리하고 종속성을 제외시키는 방법을 제공하지 않습니다. 어쨌든 이것이 어떻게 작동 할 지 모르겠습니다. 유일한 방법은 최상위 수준의 종속성 (및 모든 전이 적 dep)을 제거하는 것입니다. 뿐만 아니라 그것을 요구하는 풍미에서 그것을 선언 할 수도 있습니다. –

+0

위의 질문에 계속해서, 라이브러리가 ProjectA 인 기본 프로젝트의 apk의 일부로 포함되는 방법. ProjectA/build/class/flavor/...에는 ProjectA에서 컴파일 할 때 필요하며 해당 라이브러리 만 작동하는 라이브러리 프로젝트 클래스 파일 만 포함됩니다. 내 일은 플러그 앤 플레이 라이브러리입니다. 라이브러리는 서비스가 될 수 있으며 ProjectA에서 가져온 곳이나 가져온 곳을 사용하지 않고 ProjectA의 매니페스트 파일에만 포함됩니다. 이 경우 라이브러리를 포함하는 방법. 예 : 일식에서는 모두 함께 묶을 것이지만 같은 경우는 내 경우에는 일어나지 않습니다 ... 미리 감사드립니다 – user2318724

관련 문제