![]() ![]() Therefore, as that list is not empty anymore, fallback to default configuration doesn't happen, and the attribute matching runs against one samplessource-variant, rightfully chosing it (as there are no more options) and then failing as it is not present. Now due to fact №3, internal Gradle representation of kotlin-klib-commonizer-embeddable has changed in 7.4, and just so it happens that due to Fact №2 this ModuleResolveMetadata now suddenly becomes aware of ComponentMetadataRules and adds one samplesssource variant - to the empty list of consumableConfiguraitons! And due to Fact №1, indeed that was what were happening before Gradle 7.4, and one can observe that kotlin-klib-commonizer-embeddable configuration=default were chosen, and everything worked. So, when Gradle Dependency Resolution doesn't find consumableConfigurations, it uses "fallback configuration", which is default. Let's first demonstrate how those facts, when put together, lead to that undesired behaviour, and then proceed with discussion on why we even have those facts and whether it is desireable/intended. ![]() In Gradle 7.3.3 *ModuleResolveMetadatas coming from mavenLocal were modelled as RealisedMavenModuleResolveMetadata, and in 7.4+ it changed to DefaultMavenModuleResolveMetadata (explanation what caused that change below) RealisedMavenModuleResolveMetadata doesn't seem to add variants from ComponentMetadataRules, while DefaultMavenModuleResolveMetadata does. In the core of Gradle dependency resolution (in .model.ComponentAttributeMatcher#match), kotlin-klib-commonizer-embeddable claims that it has no consumableConfigurations (explanation how it happened below) The described issue is based upon following three "quirks"/facts, call them as you want: So, I dig around and got some interesting information about what was going on. You can use '-warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. > Task :prepareKotlinBuildScriptModel UP-TO-DATEĭeprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. ![]() You can add a source set to a target's compilation by connecting it with the compilation's default source set using 'dependsOn'. The Kotlin source set androidAndroidTestRelease was configured but not added to any Kotlin compilation. To hide this message, add '=true' to the Gradle properties. Kotlin Multiplatform Projects are an Alpha feature. Ticket on Kotlin side (to find a workaround)
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |