根据https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html,新的Android Gradle插件具有变体感知依赖性解析:
Android插件3.0.0及更高版本包含一种新的依赖机制,可在使用库时自动匹配变体。这意味着应用程序的调试变体会自动使用库的调试变体,依此类推。它在使用flavor时也有效 - 应用程序的freeDebug变体将使用库的freeDebug变体。
但是这些示例都是为本地项目依赖项编写的。
implementation project(':library')
此机制如何适用于从maven存储库加载的远程依赖项?
implementation 'com.example.android:library:0.0.1'
此外,我还想出了另外两个问题:
目前,我们正在
发布publishing {
...
artifact(output.outputFile) {
builtBy variant.assemble
};
pom.withXml {
...
dependencyNode.appendNode('scope', configurationName.contains("mplementation") ? "runtime" : "compile")
...
}
...
}
<scope>runtime</scope>
?虽然我们有<scope>runtime</scope>
,但我们仍然可以在项目的编译时使用传递依赖库中的类。