You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 2.7.5中如何排除Gradle引入的多余Flyway依赖

问题描述

我正在使用Spring Boot 2.7.5,手动引入了Flyway core 7.15.0依赖,用于在PostgreSQL-9.6上执行迁移脚本,但IntelliJ IDEA的外部依赖列表里却出现了未在gradle.build中声明的Flyway core 8.5.3版本,请问该如何排除这个意外引入的依赖?

迁移模块的gradle.build依赖配置:

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-data-cassandra")
    implementation("org.cognitor.cassandra:cassandra-migration-spring-boot-starter:2.5.0_v4")
    implementation('org.springframework.boot:spring-boot-starter-data-jpa')
    implementation ('org.springframework.boot:spring-boot-starter-web')
    implementation 'org.flywaydb:flyway-core:7.15.0'
}
解决方法

1. 定位依赖来源

先搞清楚是哪个第三方依赖间接引入了Flyway 8.5.3,有两种方式:

  • 执行Gradle命令查看依赖树:
./gradlew dependencies --configuration runtimeClasspath | grep flyway
  • 在IntelliJ IDEA中,打开gradle.build文件,右键选择「Show Dependencies」,在弹出的依赖树里找到Flyway 8.5.3的父依赖节点。

2. 排除指定间接依赖

根据上一步找到的来源,在对应的依赖声明里添加排除规则。比如如果是spring-boot-starter-data-jpa间接引入的,就修改这个依赖的配置:

implementation('org.springframework.boot:spring-boot-starter-data-jpa') {
    exclude group: 'org.flywaydb', module: 'flyway-core'
}

如果是其他依赖(比如cassandra的迁移starter)导致的,就对应修改那个依赖的声明即可。

3. 强制锁定版本(备选方案)

要是不想逐个排查,也可以直接在Gradle里强制指定Flyway的版本,确保整个项目统一使用7.15.0:

configurations.all {
    resolutionStrategy.force 'org.flywaydb:flyway-core:7.15.0'
}

4. 验证结果

执行./gradlew dependencies重新检查依赖树,确认Flyway 8.5.3已经被移除,再点击IntelliJ IDEA Gradle面板的刷新按钮,同步依赖即可。

内容的提问来源于stack exchange,提问作者Taimur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 09:35:07