如题,在多渠道打包时实现依赖不同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) ? ????????? }
????????}
|