gradle 和 Java13 内的 运行 时 Liquibase XmlElement 错误异常
Liquibase XmlElement error exception when running within gradle and Java13
问题
我最近开始在 Spring Boot (2.2.1) 中使用 liquibase。构建工具是 gradle 和 JDK 版本是 13。根据 github.
上的自述文件页面,我已经集成了 liquibase 插件
我在启动更新(gradle 更新)等 liquibase 任务时遇到了奇怪的行为。我收到 XmlElement 属性 Java NoClassDefFoundException (抱歉,因为我丢失了确切的异常堆栈跟踪和消息),但我解决了这个问题,并想在这里分享我的解决方案。
解决方案
当您从 Java 8 移动到 Java 9 及更高版本时,这是众所周知的问题,它通过添加对 javax.xml.bind 的依赖来解决。但是,当您处理 liquibase gradle 插件时,将编译 'javax.xml.bind:jaxb-api' 或运行时 'javax.xml.bind:jaxb-api' 添加到依赖项部分并没有帮助。我通过添加 liquibaseRuntime 'javax.xml.bind:jaxb-api' 解决了这个问题,这是我的 gradle 脚本的一部分:
dependencies {
// my project dependencies
// ...
// liquibase plugin deps
liquibaseRuntime 'org.liquibase:liquibase-core:3.8.1'
liquibaseRuntime "jakarta.xml.bind:jakarta.xml.bind-api:2.3.2"
liquibaseRuntime 'org.springframework.boot:spring-boot:2.2.1.RELEASE'
//liquibaseRuntime 'org.liquibase:liquibase-groovy-dsl:2.0.1'
liquibaseRuntime 'org.postgresql:postgresql:9.4.1211.jre7'
liquibaseRuntime 'ch.qos.logback:logback-core:1.2.3'
liquibaseRuntime 'ch.qos.logback:logback-classic:1.2.3'
liquibaseRuntime sourceSets.main.output
}
希望我的解决方案可以帮助您节省时间。
问题
我最近开始在 Spring Boot (2.2.1) 中使用 liquibase。构建工具是 gradle 和 JDK 版本是 13。根据 github.
上的自述文件页面,我已经集成了 liquibase 插件我在启动更新(gradle 更新)等 liquibase 任务时遇到了奇怪的行为。我收到 XmlElement 属性 Java NoClassDefFoundException (抱歉,因为我丢失了确切的异常堆栈跟踪和消息),但我解决了这个问题,并想在这里分享我的解决方案。
解决方案
当您从 Java 8 移动到 Java 9 及更高版本时,这是众所周知的问题,它通过添加对 javax.xml.bind 的依赖来解决。但是,当您处理 liquibase gradle 插件时,将编译 'javax.xml.bind:jaxb-api' 或运行时 'javax.xml.bind:jaxb-api' 添加到依赖项部分并没有帮助。我通过添加 liquibaseRuntime 'javax.xml.bind:jaxb-api' 解决了这个问题,这是我的 gradle 脚本的一部分:
dependencies {
// my project dependencies
// ...
// liquibase plugin deps
liquibaseRuntime 'org.liquibase:liquibase-core:3.8.1'
liquibaseRuntime "jakarta.xml.bind:jakarta.xml.bind-api:2.3.2"
liquibaseRuntime 'org.springframework.boot:spring-boot:2.2.1.RELEASE'
//liquibaseRuntime 'org.liquibase:liquibase-groovy-dsl:2.0.1'
liquibaseRuntime 'org.postgresql:postgresql:9.4.1211.jre7'
liquibaseRuntime 'ch.qos.logback:logback-core:1.2.3'
liquibaseRuntime 'ch.qos.logback:logback-classic:1.2.3'
liquibaseRuntime sourceSets.main.output
}
希望我的解决方案可以帮助您节省时间。