2017-04-10 9 views
0

アンドロイドのフレーバーを使って、別のフレーバーを継承し、親のクラスをオーバーライドしようとしています。ターゲットクラスが重複して表示されることを除いて、すべてが見た目と完全に動作します。誰かがこれで私を助けることができるsourceSetsから特定のファイルを除外します

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

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

:私の推測では、のようなsourceSetsから親味にクラスを除外する方法がありますです。ありがとう!代わりに別の味を継承するの

答えて

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の1つのバージョンを入れて使用していますビルドフレーバーは、標準ディレクトリに残されます。src\main\java\com\yourcompany\namespace\

関連する問題