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

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 变体 , 默认就生成该变体对应的依赖库 ;

以上是关于Android Gradle 插件主工程依赖指定 Library 的特定变体 ( LibraryExtension#publishNonDefault 配置 | 依赖指定 Library 变体 )的主要内容,如果未能解决你的问题,请参考以下文章

Android Gradle 插件Gradle 基础配置 ⑥ ( Android工程 Gradle 常用命令 | gradlew 可执行文件 | 查看帮助文档 | 查看应用依赖 )

Gradle中的build.gradle文件

Android Gradle 插件工程根目录下 build.gradle 配置文件 ( 远程仓库配置 | 依赖配置 | 所有子模块配置 | task clean 任务 )

Android Gradle 插件Gradle 依赖管理 ⑤ ( dependencies 依赖项拆分 | 依赖组 | 依赖名称 | 依赖版本号 | 动态指定依赖版本号 | 使用命令行查看模块 )

Android Gradle 插件Android 依赖管理 ⑥ ( 依赖冲突处理 | transitive 依赖传递设置 | exclude 依赖排除设置 | force 强制指定依赖库 )

Android Gradle 插件Gradle 构建机制 ⑤ ( 在 Android Studio 中查看 Android Gradle 插件源码 )