Gradle 5中查看BOM提供的所有依赖的方法咨询(脚本/命令行)
嘿,这两个问题其实可以通过几种实用的方式解决,我来给你详细说明:
问题1:如何找出Gradle 5中由BOM提供的所有依赖?
在Gradle 5里,要查看BOM包含的所有依赖,主要有命令行快速查看和自定义任务精准解析两种方式,我分别给你讲:
方式1:用Gradle内置命令行工具
你可以借助dependencies任务来查看,但因为BOM是作为平台导入的,它会影响整个项目的依赖版本,所以可以指定配置来缩小范围:
./gradlew dependencies --configuration compileClasspath
这个命令会输出compileClasspath配置下的所有依赖,包括BOM管控的版本信息。如果输出太多,你可以用过滤命令只看和目标BOM相关的内容,比如针对Spring Boot BOM:
./gradlew dependencies --configuration compileClasspath | grep -A 3 -B 3 "spring-boot-dependencies"
如果想更精准地查看BOM本身包含的所有依赖(而非项目实际使用的),可以用自定义任务。
方式2:自定义Gradle任务解析BOM
在你的build.gradle中添加一个专门的任务,它会直接解析指定BOM并输出所有依赖:
task listBomDependencies { doLast { // 这里替换成你要查看的BOM坐标 def bomCoords = "org.springframework.boot:spring-boot-dependencies:2.1.2.RELEASE" def bom = dependencies.platform(bomCoords) def resolvedBom = bom.resolve() println "=== 以下是BOM ${bomCoords} 提供的所有依赖 ===" resolvedBom.allModuleDependencies.each { dep -> println "${dep.group}:${dep.name}:${dep.version}" } } }
添加好后,运行这个任务就能看到完整的BOM依赖列表:
./gradlew listBomDependencies
问题2:针对给定的Spring Boot BOM配置,能否列出所有依赖?
当然可以!上面提到的两种方式都完全适用:
- 用命令行的话,直接运行
./gradlew dependencies --configuration compileClasspath就能看到项目中受该BOM管控的所有依赖及版本;如果只想看BOM本身的内容,用上面的自定义任务即可。 - 如果你不想修改
build.gradle,也可以用临时脚本的方式运行(比如创建一个list-bom.gradle文件,把上面的任务代码放进去,然后运行./gradlew -b list-bom.gradle listBomDependencies)。
需要注意的是,Gradle 5中platform()方法导入的BOM只会管控依赖版本,不会自动引入依赖,所以dependencies命令的输出里,只有项目实际声明的依赖会显示,但自定义任务会直接解析BOM的所有内容,不管项目有没有用到。
内容的提问来源于stack exchange,提问作者anonk
相关产品推荐
相关产品推荐

