如何解决未指定使用 H2 获取驱动程序类的 Liquibase 和 MVMap$2 错误
当我执行时:./mvnw liquibase:diff
我收到错误:Driver class was not specified
和 ClassNotFoundException: org.h2.mvstore.MVMap$2
:
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:4.3.2:diff (default-cli) on project app:
[ERROR] Error setting up or running Liquibase:
[ERROR] liquibase.exception.DatabaseException: java.lang.RuntimeException: Driver class was not specified and Could not be determined from the url (hibernate:spring:com.my.app.domain?dialect=org.hibernate.dialect.H2Dialect)
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors,re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions,please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Exception in thread "Thread-1" java.lang.NoClassDefFoundError: org/h2/mvstore/MVMap$2
at org.h2.mvstore.MVMap.entrySet(MVMap.java:793)
at org.h2.mvstore.db.LobStorageMap.removeAllForTable(LobStorageMap.java:302)
at org.h2.engine.Database.removeOrphanedLobs(Database.java:1489)
at org.h2.engine.Database.closeImpl(Database.java:1416)
at org.h2.engine.Database.close(Database.java:1373)
at org.h2.engine.OnExitDatabaseCloser.onShutdown(OnExitDatabaseCloser.java:85)
at org.h2.engine.OnExitDatabaseCloser.run(OnExitDatabaseCloser.java:114)
Caused by: java.lang.classNotFoundException: org.h2.mvstore.MVMap$2
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
... 7 more
这是我的pom.xml
:
<build>
<defaultGoal>spring-boot:run</defaultGoal>
<plugins>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
</plugin>
...
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase.version}</version>
<configuration>
<changeLogFile>${project.basedir}/src/main/resources/config/liquibase/master.xml</changeLogFile>
<diffChangeLogFile>${project.basedir}/src/main/resources/config/liquibase/changelog/${maven.build.timestamp}_changelog.xml</diffChangeLogFile>
<driver>org.h2.Driver</driver>
<url>jdbc:h2:file:${project.build.directory}/h2db/db/app</url>
<defaultSchemaName></defaultSchemaName>
<username>app</username>
<password></password>
<referenceUrl>hibernate:spring:com.my.app.domain?dialect=org.hibernate.dialect.H2Dialect</referenceUrl>
<verbose>true</verbose>
<logging>debug</logging>
<contexts>!test</contexts>
</configuration>
<dependencies>
<dependency>
<groupId>org.liquibase.ext</groupId>
<artifactId>liquibase-hibernate5</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
</dependency>
</dependencies>
</plugin>
解决方法
我看到您没有将驱动程序(相对)路径添加到驱动程序标签。看看这篇文章:https://docs.liquibase.com/concepts/basic/liquibase-relative-path-best-practices.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。