如何在build.gradle的configurations.all中添加多份resolutionStrategy
关于build.gradle中resolutionStrategy配置的正确性确认
你的写法是可以正常生效的,不会影响原有配置的功能。不过Gradle更推荐将同属resolutionStrategy的配置放在同一个闭包内,代码结构更清晰,也符合Gradle的配置风格。
你的现有写法(可正常运行)
configurations.all { resolutionStrategy { force 'androidx.core:core-ktx:1.6.0' } resolutionStrategy.eachDependency { if (requested.group == "org.jfrog.cardinalcommerce.gradle" && requested.name == "cardinalmobilesdk") { useVersion("2.2.7-2") because("user data consent per Google's Data Safety Policy") } } }
这段代码会分别执行两个resolutionStrategy相关配置,原有强制指定androidx.core:core-ktx版本的逻辑不受影响,新增的依赖版本替换规则也能正常生效。
更推荐的规范写法(合并配置闭包)
将所有resolutionStrategy的配置项合并到同一个闭包中,逻辑更集中,便于后续维护:
configurations.all { resolutionStrategy { // 原有强制版本配置 force 'androidx.core:core-ktx:1.6.0' // 新增的依赖版本替换配置 eachDependency { if (requested.group == "org.jfrog.cardinalcommerce.gradle" && requested.name == "cardinalmobilesdk") { useVersion("2.2.7-2") because("user data consent per Google's Data Safety Policy") } } } }
两种写法的功能完全一致,后者在代码整洁度和可维护性上更优。
内容的提问来源于stack exchange,提问作者Xavier Ojeda Aguilar
相关产品推荐
相关产品推荐

