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资源依赖共享
- 在database模块的
build.gradle中声明资源目录:
sourceSets { main { resources { srcDirs = ["src/main/resources"] } } }
- 在主模块(myApp)的
build.gradle中添加对database模块的依赖:
dependencies { implementation project(':database') }
- 此时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
相关产品推荐
相关产品推荐

