我的源树:
app/src/main/java/com/example/A.java
app/src/main/java/com/example/B.java
Run Code Online (Sandbox Code Playgroud)
我想使用 ProductFlavor 或 buildType 自定义一些特定的构建。但我发现 sourceSets 中的排除语句也会影响其他productFlavor/buildType。
示例1.
productFlavors {
full {
sourceSets {
main {
java {
}
}
}
}
mini {
sourceSets {
main {
java {
exclude '**/A.java'
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
构建后,两者
app-mini-release.aar
Run Code Online (Sandbox Code Playgroud)
和
app-full-release.aar
Run Code Online (Sandbox Code Playgroud)
是相同的。
示例2:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
sourceSets {
main {
java {
exclude '**/A.java'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
构建后,两者
app-debug.aar
Run Code Online (Sandbox Code Playgroud)
和
app-release.aar
Run Code Online (Sandbox Code Playgroud)
包含A.class