Library 项目发布

最后更新于:2022-04-01 02:25:28

# Library 项目发布 一般情况下一个库只会发布它的 *release* variant(变种)版本。这个版本将会被所有引用它的项目使用,而不管它们本身自己构建了什么版本。这是由于 Gradle 的限制,我们正在努力解决这个问题,所以这只是临时的限制。 你可以控制哪一个 Variant 版本作为发行版: ~~~ android { defaultPublishConfig "debug" } ~~~ 注意这里的发布配置名称引用的是完整的 variant 版本名称。*Relesae*,*debug* 只适用于项目中没有其它 flavor(特性)时使用。如果想要用其它使用了 flavor 的 variant 版本取代默认的发布版本,你可以: ~~~ android { defaultPublishConfig "flavor1Debug" } ~~~ 将 Library 项目的所有 variant 版本都发布也是可能的。我们计划在一般的 `项目依赖项目`(类似于前面所述)情况下允许这种做法,但是由于 Gradle 的限制(我们也在努力修复这个问题)现在还不太可能。 默认情况下没有开启发布所有 variant 版本功能,可以通过以下代码启用: ~~~ android { publishNonDefault true } ~~~ 发布多个 variant 版本意味着发布多个 aar 文件而不是一个 aar 文件包含所有 variant 版本。每个 aar 包都包含一个 variant 版本。 发布一个 variant 版本意味着构建一个可用的 aar 文件作为 Gradle 项目的输出文件。无论是发布到 maven 仓库,还是其它项目需要创建该 Library 项目的依赖都可以使用到这个 aar。 Gradle 有`默认文件`的概念。当添加以下配置后就会自动使用: ~~~ compile project(':libraries:lib2') ~~~ 创建其它发布文件的依赖,你需要指定具体使用哪一个: ~~~ dependencies { flavor1Compile project(path: ':lib1', configuration: 'flavor1Release') flavor2Compile project(path: ':lib1', configuration: 'flavor2Release') } ~~~ > 重要:注意已发布的 configuration 是一个完整的 variant 版本,其中包括了 build type,并且需要像上面一样被引用。 > 重要:当发布配置非默认时,Maven 发布插件将会发布其它 variant 版本作为扩展包(按分类器分类)。这里是指不能真正的兼容发布到 Maven 仓库。你应该另外发布一个单一的 variant 版本到仓库中,或者允许发布所有配置以支持跨项目依赖。
';