Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何组合多个源集_Android_Gradle_Android Gradle Plugin - Fatal编程技术网

Android 如何组合多个源集

Android 如何组合多个源集,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,我正在尝试从Eclipse/ANT迁移到Android Studio/Gradle。 我们当前的ant构建支持N个客户(构建目标),一个客户由三重皮肤/玩家/客户定义。 每个皮肤/玩家/客户可能包含src、资源、资产 在Gradle建模的最佳方式是什么 我目前为每位客户创建了productFlavor,如下所示 productFlavors { cust1{ applicationId='com.xyz.cust1' customer="cust1"

我正在尝试从Eclipse/ANT迁移到Android Studio/Gradle。 我们当前的ant构建支持N个客户(构建目标),一个客户由三重皮肤/玩家/客户定义。 每个皮肤/玩家/客户可能包含src、资源、资产

在Gradle建模的最佳方式是什么

我目前为每位客户创建了productFlavor,如下所示

productFlavors {
     cust1{
         applicationId='com.xyz.cust1'
         customer="cust1"
         skin="skinX"
         player="playerA"
     }
     cust2{
         applicationId='com.xyz.cust2'
         customer="cust2"
         skin="skinY"
         player="playerB"
     } 
 }
但我在以紧凑的方式定义相应的源集时遇到了问题

我可以写一些像这样的东西

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 {
    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')
}
这可能吗

另一种方法是为每个播放器、皮肤和客户创建一个源集,并通过将主源集与播放器、皮肤和客户的源集相结合,为productFlavor创建一个源集

感谢您的投入

我会调查(以前称为风味组,也称为多味变体)

使用这些,您将为皮肤、玩家和客户设置三个口味维度。每个皮肤在
skin
维度中获得
productFlavor
,每个玩家在
player
维度中获得
productFlavor
,每个客户在
customer
维度中获得
productFlavor


然后,您将有类似于
assembleSkinxPlayeraCust1Debug
的任务,它将从
skinx
playera
cust1
debug
源集构建一个应用程序。

谢谢!我试试看