在我们的项目中使用 gradle-liquibase 插件,并解决了所有依赖项。
我有以下 Gradle liquibase 插件建议的 liquibase 任务:
liquibase {
activities {
main {
changeLogFile 'src/main/resources/db/dbchangelog-master.xml'
url 'jdbc:mysql://localhost:3306/test'
username 'XXX'
password 'XXX'
}
}
runList = 'main'
}
但是遇到了问题,尽管日志文件位于项目类路径目录(src/main/resources/)中,但liquibase无法识别changeLogFile
。错误:
Caused by: liquibase.exception.ChangeLogParseException:
src/main/resources/dbchangelog/db.changelog-master.xml does not exist
关于我应该如何解决与类路径相关的问题的任何帮助?
只需在 src 目录所在的位置添加一个类路径参数
liquibase {
activities {
main {
changeLogFile 'src/main/resources/db/dbchangelog-master.xml'
url 'jdbc:mysql://localhost:3306/test'
username 'XXX'
password 'XXX'
classpath "$rootDir"
}
}
runList = 'main'
}
我在使用 gradle liquibase 插件版本 1.0.0 时遇到了同样的问题,并找到了解决方法......在您的示例中,它将是这样的:
liquibase {
activities {
main {
changeLogFile "${this.rootDir}/src/main/resources/db/dbchangelog-master.xml"
url 'jdbc:mysql://localhost:3306/test'
username 'XXX'
password 'XXX'
}
}
runList = 'main'
}
当您从 eclipse 运行 gradle 任务时 - 它确实尝试在 eclipse 本身的根目录中查找更改日志文件......
当前目录是否确实在您的类路径中?通常,您的类路径配置为包含"目标"输出目录,并可能将"src/main/resources"作为另一个类路径根目录。
如果你使用changeLogFile 'db/dbchangelog-master.xml'
它有效吗?