Android Plugin DSL Reference 参考文档 :
LibraryExtension ( Library 依赖库的 build.gradle#android 配置 ) 文档 : android-gradle-dsl/2.3/com.android.build.gradle.LibraryExtension.html
在 LibraryExtension 中的 publishNonDefault 配置 , 是用于配置是否生成所有配置对应的构件 ( artifacts ) , 默认情况下该配置为 false ;
默认情况下 , 只生成 LibraryExtension#defaultPublishConfig 默认配置对应的构件 ( artifacts ) ;
LibraryExtension#publishNonDefault 配置原型 :
boolean publishNonDefault
Whether to publish artifacts for all configurations, not just the default one.
是否为所有配置发布构件,而不仅仅是默认配置。
See Add Build Dependencies
LibraryExtension#defaultPublishConfig 配置原型 :
String defaultPublishConfig
Name of the configuration used to build the default artifact of this project.
用于构建此项目的默认构件的配置的名称。
See Add Build Dependencies
如果设置 LibraryExtension#defaultPublishConfig 配置 为 release , 则默认生成 release 版本的 构件 ;
默认情况下生成 debug 版本的构件 ;
Android 的 Application 主工程 经常需要 引用 Library 依赖库工程 ,
依赖库的 build.gradle 中可以配置多个 buildType 变体 , 最常见的是 debug 和 release 变体 ,
在引用依赖库时 , 可以指定引用哪个变体 ,
依赖配置如下 :
dependencies {
compile project(path:':mylibrary', configuration:'release')
}
使用上述依赖的前提 , 就是 LibraryExtension#publishNonDefault 配置必须设置为 true , 否则可能依赖的变体没有生成 , 导致编译报错 ;
还有一种方法 , 就是设置 mylibrary 的 LibraryExtension#defaultPublishConfig 配置为 release 变体 , 默认就生成该变体对应的依赖库 ;