2017-04-10 2 views
0

android flavors로 작업하면서, 다른 것의 맛을 상속하고 부모의 클래스를 무효화하려고합니다. 목표 클래스가 중복 된 것으로 나타나는 것을 제외하면 모든 것이 완벽하게 보이고 작동합니다. 내 생각 엔 sourceSets에서 부모 flavor의 클래스를 제외하는 방법이 있습니다.sourceSets에서 특정 파일을 제외하십시오.

sourceSets { 
    benchmark { 
     java { 
      srcDirs = ['src/main/java', 'src/offline/java', 'src/benchmark/java'] 

      exclude { '**/Facade.java' in sourceSets.offline.files } 
     } 
    } 
} 

다른 사람이 도와 줄 수 있습니까? 감사! 대신 다른 맛 상속의

답변

0

에 상관없이 항상 동일하지가 src\standard\java\com\yourcompany\namespace\facade.java

파일의 대체 버전을 넣어 flavor dimensions

android { 
    ... 


    flavorDimensions "version", "online" 


    productFlavors {  
     benchmark { 
      dimension "version" 
      ... 
     } 

     standard { 
      dimension "version" 
      ... 
     } 

     online { 
      dimension "online" 
      ... 
     } 

     offline { 
      dimension "online" 
      ... 
     } 
    } 
    //optionally filter combinations you don't want 
    variantFilter { variant -> 
     if (variant.flavors*.name.contains("online") && variant.flavors*.name.contains("benchmark")) { 
      variant.ignore = true 
     } 
    } 
} 

src\benchmark\java\com\yourcompany\namespace\facade.java

facade.java의 한 버전을 넣어 사용하는 빌드 풍미는 표준 디렉토리에 남아 있습니다. src\main\java\com\yourcompany\namespace\