【Android Gradle 插件】主工程依赖指定 Library 的特定变体 ( LibraryExtension#publishNonDefault 配置 | 依赖指定 Library 变体 )

Android Plugin DSL Reference 参考文档 :





一、LibraryExtension#publishNonDefault 配置



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 版本的构件 ;





二、依赖指定 Library 变体



Android 的 Application 主工程 经常需要 引用 Library 依赖库工程 ,

依赖库的 build.gradle 中可以配置多个 buildType 变体 , 最常见的是 debug 和 release 变体 ,

在引用依赖库时 , 可以指定引用哪个变体 ,

依赖配置如下 :

dependencies {
    
    
	compile project(path:':mylibrary', configuration:'release')
}

使用上述依赖的前提 , 就是 LibraryExtension#publishNonDefault 配置必须设置为 true , 否则可能依赖的变体没有生成 , 导致编译报错 ;

还有一种方法 , 就是设置 mylibrary 的 LibraryExtension#defaultPublishConfig 配置为 release 变体 , 默认就生成该变体对应的依赖库 ;

猜你喜欢

转载自blog.csdn.net/han1202012/article/details/124958238