[英]Liquibase XmlElement error exception when running within gradle and Java13
我最近開始在 Spring Boot (2.2.1) 中使用 liquibase。 構建工具是gradle , JDK版本是13 。 我已經根據 github 上的自述頁面集成了liquibase 插件。
當我開始 liquibase 任務(例如更新(gradle 更新))時,我遇到了奇怪的行為。 我收到了XmlElement 屬性的Java NoClassDefFoundException (抱歉,因為我丟失了確切的異常堆棧跟蹤和消息),但我解決了這個問題,並想在這里分享我的解決方案。
當您從 Java 8 遷移到 Java 9 及更高版本時,這是眾所周知的問題,它通過向 javax.xml.bind 添加依賴項來解決。 但是,當您處理 liquibase gradle 插件時,將 compile 'javax.xml.bind:jaxb-api' 或 runtime '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
}
我希望我的解決方案可以幫助您節省時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.