Gradle Java Platform模块:如何覆盖BOM依赖?能否按组统一设置?
Gradle Java Platform Plugin依赖版本覆盖问题解答
1. 覆盖BOM中依赖的正确方式
在Gradle Java Platform里,覆盖导入BOM的依赖版本,正确做法就是通过constraints块声明版本约束。平台自身的约束优先级高于外部导入的BOM,只要在constraints里明确指定目标依赖的版本,就能覆盖BOM中的默认版本。你之前逐个配置单个Jar的方式是有效的,但可以进一步优化。
2. 按组批量覆盖依赖版本
完全可以按组统一设置版本,无需逐个Jar单独配置。Gradle支持直接针对整个依赖组添加版本约束,具体配置如下:
plugins { `java-platform` } javaPlatform { allowDependencies() } dependencies { api(platform("org.springframework.boot:spring-boot-dependencies:2.7.7")) } constraints { // 为org.springframework.security整个组的所有依赖设置统一版本约束 api(group = "org.springframework.security") { version { require("5.8.1") } } }
配置完成后,所有属于org.springframework.security组的依赖都会自动使用5.8.1版本,不用再单独为每个Jar编写约束。
内容的提问来源于stack exchange,提问作者ams
相关产品推荐
相关产品推荐

