Android Flavors:每种风味的多个java和src目录

时间:2015-09-02 15:28:26

标签: java android gradle src

任何人都可以向我解释我如何使用我的每种口味更多只是主要和特定风味的java / src目录?我的目标是让目录由多种口味使用,但不是全部使用。

例如,我有3种口味:A1,A2和B.

  • 所有赞成使用main / src(默认主src目录)
  • A1使用A1 / src(默认的flavor src目录)
  • A2使用A2 / src(默认的flavor src目录)
  • B使用B / src(默认的flavor src目录)
  • A1和A2使用A / src(“特殊”共享目录)

这可能吗?如果是这样,我应该在build.gradle文件中添加什么内容?

作为一个额外的问题,我可以选择gradle在哪个顺序寻找不同目录中的文件吗?

例如,如果我在A / src和A1 / src中都声明了a.png,我可以告诉gradle首先在A / src中查找此文件,并且只有在找不到任何内容时才能在A1 / src中查找它?

2 个答案:

答案 0 :(得分:9)

如上所述here

  

如上所述,每个sourceSet都可以定义多个资源文件夹。

您可以定义多个资源文件夹。例如:

android {
     ...
     sourceSets {
            main {
                //....
                res.srcDirs = ['/src/main/res']

            }
            flavorA1 {
                 res.srcDirs = ['/src/flavor1/res', '/src/commonA/res']
            }
            flavorA2 {
                 res.srcDirs = ['/src/flavor2/res', '/src/commonA/res']
            }     
            //.....other flavors   
     }
}

答案 1 :(得分:2)

我发现设置 java 源文件

需要稍微不同的格式
sourceSets {
    favorA1 {
        java {
            srcDirs('src/favorA1/java/src', 'src/commonA/java/src')
        }
    }
    favorA2 {
        java {
            srcDirs('src/favorA2/java/src', 'src/commonA/java/src')
        }
    }
}

Gradle Java
Gradle Source Api