Gradle 包括和排除Android Studio中不同风格的源代码集

Gradle 包括和排除Android Studio中不同风格的源代码集,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,在Android Studio项目中,我有不同的java模块,并希望根据产品风格对其进行编译,即flavor1中的feature1和flavor2中的feature2、feature3。还有一些常见的代码,需要经常编译。 这是我的build.gradle的一部分: productFlavors { flavor1 { sourceSets { main.java.srcDirs += [ 'path_to

在Android Studio项目中,我有不同的java模块,并希望根据产品风格对其进行编译,即flavor1中的feature1和flavor2中的feature2、feature3。还有一些常见的代码,需要经常编译。 这是我的build.gradle的一部分:

productFlavors {
    flavor1 {
        sourceSets {
            main.java.srcDirs += [
                      'path_to_my_dir/feature1'
            ]
        }
    }
    flavor2 {
        sourceSets {
            main.java.srcDirs += [
                     'path_to_my_dir/feature2',
                     'path_to_my_dir/feature3'
            ]
        }
    }
}
sourceSets {
    main.java.srcDir 'path_to_my_dir/common'
}
问题是,所有特性都是针对任何口味编译的。 类似这样的代码的不同变体也不起作用:

flavor2 {
        main.java.excludes += [
                 'path_to_my_dir/feature1'
        ]
    }
}

有没有关于如何使其工作的想法?

它的工作结构略有不同:

sourceSets {
    main {
        java.srcDir 'path_to_my_dir/common'
    }
    flavor1 {
        java.srcDirs += [
              'path_to_my_dir/feature1'
        ]
    }
    flavor2 {
        java.srcDirs += [
              'path_to_my_dir/feature2'
              'path_to_my_dir/feature3'
        ]
    }
}

嗨,我在这里找到了解决方案,它对我很有效