如题,在多渠道打包时实现依赖不同Module!
第一步:
在 app的build.geadle中 android {}同级添加如下代码:
//当前渠道Name.
def channelName = ""
gradle.startParameter.getTaskNames().each { task ->
if (task.toLowerCase().contains("hangzhou")) {
channelName = "hangzhou"
} else if (task.toLowerCase().contains("nanjing")) {
channelName = "nanjing"
}else if (task.toLowerCase().contains("shanghai")) {
channelName = "shanghai"
}
}
第二步:
在dependencies里根据channelName做if判断即可,譬如:
dependencies {
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
//在这里可以依赖不同的Module 依赖不同的JAR目前是不行的.
if ("hangzhou".equals(channelName)){
println("************* "+channelName)
}else if ("nanjing".equals(channelName)){
println("************* "+channelName)
}else if ("shanghai".equals(channelName)){
println("************* "+channelName)
}
}