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

Gradle项目中如何在Liquibase变更集引入其他模块的SQL文件

跨Gradle模块引入Liquibase SQL变更文件方案

直接使用项目根路径引用

如果主模块(myApp)的changelog文件位于src/main/resources/liquibase下,可直接通过项目根目录相对路径引用database模块的SQL文件,配置示例:

<changeSet id="import-cross-module-sql" author="your-username">
    <sqlFile path="../database/src/main/resources/mySqlFile1.sql" relativeToChangelogFile="false"/>
    <sqlFile path="../database/src/main/resources/mySqlFile2.sql" relativeToChangelogFile="false"/>
    <sqlFile path="../database/src/main/resources/mySqlFile3.sql" relativeToChangelogFile="false"/>
</changeSet>
  • relativeToChangelogFile="false":强制路径基于项目根目录解析,而非changelog所在目录
  • 需根据实际项目结构调整SQL文件的路径层级

通过Gradle资源依赖共享

  1. 在database模块的build.gradle中声明资源目录:
sourceSets {
    main {
        resources {
            srcDirs = ["src/main/resources"]
        }
    }
}
  1. 在主模块(myApp)的build.gradle中添加对database模块的依赖:
dependencies {
    implementation project(':database')
}
  1. 此时SQL文件会被加入主模块的类路径,changelog中可直接通过类路径引用:
<changeSet id="import-sql-via-classpath" author="your-username">
    <sqlFile path="mySqlFile1.sql" relativeToChangelogFile="false"/>
    <sqlFile path="mySqlFile2.sql" relativeToChangelogFile="false"/>
    <sqlFile path="mySqlFile3.sql" relativeToChangelogFile="false"/>
</changeSet>
  • 确保SQL文件放置在database模块的src/main/resources目录下,才能被正确加载到类路径

验证方式

执行Gradle命令校验变更日志合法性,确保路径配置正确:

./gradlew :myApp:liquibaseValidate

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:36:38