我的源代码树:
app/src/main/java/com/example/A.java
app/src/main/java/com/example/B.java
我希望使用productFlavor或buildType来定制一些特定的构建。但是我发现,sourceSets中的排除语句会影响其他的productFlavor/buildType。
示例 1:
productFlavors {
full {
sourceSets {
main {
java {
}
}
}
}
mini {
sourceSets {
main {
java {
exclude '**/A.java'
}
}
}
}
}
构建完成后,两者均可使用。
app-mini-release.aar
并且
app-full-release.aar
它们是一样的。
例2:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
sourceSets {
main {
java {
exclude '**/A.java'
}
}
}
}
构建完成后,两者都会得到更新。
app-debug.aar
并且。
app-release.aar
包含 A.class