2014-12-23 3 views
1

Eclipse/ANT에서 Android Studio/Gradle로 마이그레이션하려고합니다. 현재의 개미 빌드는 N 명의 고객 (빌드 타겟)을 지원하며 고객은 3 중 스킨/플레이어/고객에 의해 정의됩니다. 모든 스킨/플레이어/고객은 src, resources, assets 등을 포함 할 수 있습니다 ...여러 소스 세트를 결합하는 방법

Gradle에서 가장 좋은 방법은 무엇입니까?

productFlavors { 
    cust1{ 
     applicationId='com.xyz.cust1' 
     customer="cust1" 
     skin="skinX" 
     player="playerA" 
    } 
    cust2{ 
     applicationId='com.xyz.cust2' 
     customer="cust2" 
     skin="skinY" 
     player="playerB" 
    } 
} 

을 다음과 같이

나는 현재 모든 고객에 대한 productFlavor을 생성하지만 컴팩트 한 방법으로 해당 sourceSets을 정의하는 문제가있다.

나는 모든 고객에 대한

sourceSets.cust1 { 
    java.srcDir('pool/playerA/src') 
    res.srcDir('pool/skinX/res') 
    res.srcDir('pool/playerA/res') 
    res.srcDir('pool/cust1/res') 
    assets.srcDir('pool/playerA/assets') 
    assets.srcDir('pool/skinX/assets') 
    jniLibs.srcDir('pool/playerA/libs') 
} 

같은 것을 쓸 수 있지만,이 N 결과 거의 동일 sourceSets

내가

sourceSets { 
    java.srcDir('pool/${player}/src') 
    res.srcDir('pool/${skin}/res') 
    res.srcDir('pool/${player}/res') 
    res.srcDir('pool/${customer}/res') 
    assets.srcDir('pool/${player}/assets') 
    assets.srcDir('pool/${skin}/assets') 
    jniLibs.srcDir('pool/${player}/libs') 
} 

처럼 하나의 매개 변수화, sourceSets을하는 것을 선호 이것이 가능한가?

하나의 대안은 모든 플레이어, 피부와 고객에 대한 sourceSet을 만들고

입력 감사 플레이어, 피부와 고객의 사람과 주요 sourceSet을 결합하여 productFlavor에 대한 sourceSet을 만들 수 있었다!

답변

1

flavor dimensions (이전에는 여러 가지 맛의 변종이라고도하는 풍미 그룹으로 알려짐)을 조사했습니다.

이들을 사용하여 스킨, 플레이어 및 고객에 대해 세 가지 크기 측정 기준을 설정합니다. 각 피부는 skin 차원에서 productFlavor이되고 각 플레이어는 player 차원에서 productFlavor을 얻고 각 고객은 customer 차원에서 productFlavor이됩니다.

그런 다음 skinx, playera, cust1debug sourcesets에서 응용 프로그램을 구축 할 것이다, assembleSkinxPlayeraCust1Debug 같은 작업을 할 것입니다.

+0

감사! 나는 그것을 시험해 보겠다. –

관련 문제