默认情况下,一个库只会发布它的release变种版本,这个版本将会被所有引用它的项目使用,而不管它们本身构建了什么版本,这是由于Gradle的限制,我们正在努力消除这个问题,所以这只是临时的限制。
你可以控制哪一个变种版本作为发行版
android {
defaultPublishConfig "debug"
}
注意:这里的发布配置名称引用的是完整的变种版本名称。 release和debug只适用于项目中没有其他特性版本的时候使用。如果你想要使用其它变种版本取代默认的发布版本,你可以:
android {
defaultPublishConfig "flavor1Debug"
}
将库项目的所有变种版本都发布也是可能的,我们计划在一般的工程间依赖(类似上述情况)情况下允许这样,但是由于gradle的限制,现在还不太可能,我们目前正在努力解决这个问题。
默认情况下没有启用发布所有变种版本。可以通过以下启用:
android {
publishNonDefault true
}
这里有一个很重要的事情需要清楚,发布多个变种版本意味着发布多个arr文件而不是一个arr文件包含所有变型版本。每一个arr包都包含一个单一的变种版本。
发布一个变种版本意味着构建一个可用的arr文件作为Gradle工程的输出文件。无论是发布到一个maven仓库,还是其它项目需要创建一个这个库项目的依赖都可以使用到这个文件。
Gradle有一个默认文件的概念。当添加以下配置后就会被使用到:
compile project(':libraries:lib2')
创建一个对其他某发布文件的依赖时,需要指定具体使用哪一个:
dependencies {
flavor1Compile project(path: ':lib1', configuration: 'flavor1Release')
flavor2Compile project(path: ':lib1', configuration: 'flavor2Release')
}
重点提示:已发布的配置是一个完整的变种版本,其中包含了build type
,并且需要像以上一样被引用。
当启用非默认配置发布时,maven发布插件将会发布其他变种版本作为扩展包(根据分类器),这意味着不能真正的兼容发布到maven仓库。你应该另外发布一个单一的变种版本到仓库中,或者允许发布所有配置以支持跨项目依赖。