my source tree:
app/src/main/java/com/example/A.java
app/src/main/java/com/example/B.java
我想使用 productFlavor 或 buildType 自定义一些特定的构建。但我发现 sourceSet 中的排除语句也会影响其他产品风味/构建类型。
示例 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
将 A.java 文件替换为从 app/src/main/java/com/example/
app/src/full/java/com/example/
之后,如果您在构建变体中选择miniDebug,它将从
app/src/full/*