Android风格排除重复类

Android风格排除重复类,android,android-productflavors,android-build-flavors,Android,Android Productflavors,Android Build Flavors,我宣布了两种口味: productFlavors { part1 { } part2 { } } 我还有单独的资源文件夹: sourceSets { part1 { java { srcDirs = ['src/part1/java'] } } part2 { java { srcDirs = ['src/part2/java']

我宣布了两种口味:

productFlavors
{
part1
  {
  }
 part2
  {
  }
}
我还有单独的资源文件夹:

 sourceSets {
    part1 {
        java {
            srcDirs = ['src/part1/java']
        }
    }

    part2 {
        java
            {
            srcDirs = ['src/part2/java']
        }
    }
第1部分包含:Main.java和Second.java

第2部分仅包含:Main.java

一切正常,直到我将第2部分的源jave更改为:

srcDirs = ['src/part2/java','src/part1/java']
因为Main.java在这两部分中,所以我收到了重复的类错误


当我选择part2作为构建变量时,有没有一种方法可以从Part1中排除part2的Main.java类?并且能够像这样编译第2部分:Main.java(来自第2部分源文件夹)和Second.java(来自第1部分源文件夹)?

为什么要将
part1/java
作为第2部分的源目录?你做得不对。所有应在所有口味中提供的所有通用来源仍然必须在src/main中。所有风味特定来源都属于各自的文件夹。不应指定源集。你这样做是为了什么?如果我把Main.java放在主文件夹中,它也会给我在flavor上的类副本,我会在Main.java上创建它。