由于某些原因,当我在我的liquibase.properties
文件中设置它时,Liquibase maven插件没有使用我的属性。当我运行mvn liquibase:update
时,我得到以下信息。
[INFO] there are no resolved artifacts for the Maven project.
[INFO] Parsing Liquibase Properties File
[INFO] File: target/classes/liquibase.properties
[INFO] 'classpath' in properties file is not being used by this task.
由于这个原因,更新失败了,因为liquibase无法找到驱动程序并且无法连接到数据库。
我看到了这个问题,但他们正在使用liquibase可执行文件而不是maven。我用它作为如何使用liquibase.properties文件的例子。
Setting up Liquibase with MS-SQL Server
我看到它在异常L571到L588之间的例外,但实际的异常没有打印出来,所以我不知道错误的原因。
答案 0 :(得分:2)
您必须将驱动程序jar作为依赖项放在maven POM中,而不是在属性文件中设置类路径。
请参阅documentation for the Liquibase Maven Task,尤其是描述不同JDBC依赖关系的部分。这是一个片段:
Maven Liquibase更新示例
您需要确保为您提供相关的JDBC驱动程序 Maven POM文件的依赖部分中的数据库。
MySQL示例:
new Promise((resolve, reject) => {
console.log('first chain link executed')
resolve('daniel');
}).then(name => {
console.log('second chain link executed')
if (name === 'daniel') {
return new Promise(() => {
console.log('unresolved promise executed')
});
}
}).then(() => console.log('last chain link executed'))
// VM492:2 first chain link executed
// VM492:5 second chain link executed
// VM492:8 unresolved promise executed
答案 1 :(得分:0)
就我而言,这是一个简单的复制和粘贴问题。
driver
中的属性liquibase.properties
以空格结尾。删除空格后,一切都很好。
driver: com.mysql.cj.jdbc.Driver
vs
driver: com.mysql.cj.jdbc.Driver
答案 2 :(得分:0)
这answer使我朝着正确的方向前进。就我而言,那是我需要声明Maven资源。
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
希望有帮助!