有没有办法按口味选择性地编译模块?
我正在尝试通过在运行debug
flavor时不编译各种模块来减少开发中的构建时间。
libs
文件夹中,而是将它们放在addon-libs
中,并仅在导出时(通过gradle构建脚本)编译它们,并且在代码中有类似的东西这样:
try {
if(Class.forName(clazz) {
doStuffForLib();
}
} catch (ClassNotFoundException ex) {
// DO NOTHING
}
我的问题是,我现在可以在build.gradle中做类似的事情并减少构建时间吗?
即,我会写这样的东西
buildTypes {
debug{
}
release {
compile 'some.module:version:1.+'
}
}
答案 0 :(得分:1)
您可以使用。或
来使用flavor或buildTypes来实现它dependencies {
flavor1Compile xxx
debugCompile xxxx
}
答案 1 :(得分:1)
搜索后我发现this JIRA ticket解决了我的问题。
您可以为每个版本提供编译,并为其他人使用provided
依赖关系任务,同时维护所提供的代码,以避免使用未在其不存在时编译的模块< / p>
public boolean isClassFound(String clazz) {
try {
return Class.forName(clazz);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return false
}
在build.gradle
添加:
dependencies {
provided 'some.module:version:1.+'
releaseCompile 'some.module:version:1.+'
}