【问题标题】:Liquibase maven plugin with JDK11 failingJDK11失败的Liquibase maven插件
【发布时间】:2020-03-16 02:09:56
【问题描述】:

我正在使用 阿帕奇 Maven 3.3.9 Java版本:11.0.5 最新版本的 liquibase-maven-plugin 如下:

           <plugin>
              <groupId>org.liquibase</groupId>
              <artifactId>liquibase-maven-plugin</artifactId>
              <configuration>
                 <changeLogFile>src\main\resources\changelog.yaml</changeLogFile>
                 <driver>oracle.jdbc.OracleDriver</driver>
                 <url>thin_url</url>
                 <username>user</username>
                 <password>password</password>
              </configuration>
           </plugin>        

我在 poml.xml 中添加了以下依赖项

<dependency>
  <groupId>javax.xml.bind</groupId>
  <artifactId>jaxb-api</artifactId>
  <version>2.3.1</version>
</dependency>
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-core</artifactId>
  <version>2.3.0.1</version>
</dependency>
<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-impl</artifactId>
  <version>2.3.1</version>
</dependency>

但每次使用 mvn liquibase:update 执行插件时,我都有一个 Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlElement 异常。

知道我做错了什么吗?

【问题讨论】:

    标签: plugins liquibase java-11


    【解决方案1】:

    我在错误的地方添加了依赖项。我在 pom.xml 中将它们添加为“常规”依赖项。我不知道我必须在插件中添加它们如下:

           <plugin>
              <groupId>org.liquibase</groupId>
              <artifactId>liquibase-maven-plugin</artifactId>
              <version>${liquibase.version}</version>
              <configuration>
                 <changeLogFile>resources\changelog2.yml</changeLogFile>
                 <driver>oracle.jdbc.OracleDriver</driver>
                 <url>url</url>
                 <username>user</username>
                 <password>password</password>
                 <verbose>true</verbose>
              </configuration>
               <dependencies>
                <dependency>
                    <groupId>jakarta.xml.bind</groupId>
                    <artifactId>jakarta.xml.bind-api</artifactId>
                    <version>2.3.2</version>
                </dependency>
              </dependencies>
           </plugin>        
    

    【讨论】:

      【解决方案2】:

      Java 9(及更高版本)删除了一些曾经是标准 Java 运行时一部分的类。

      有关详细信息,请参阅此问题和答案: How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java 9

      【讨论】:

      • 我已经看到了该链接,这就是我将依赖项添加到 pom.xml 的原因。我做了一个测试,甚至包括 jakarta、glassfish 等。链接中提到的依赖项,它不起作用。从我在该链接中读到的内容来看,应该足够了,但还不够。
      猜你喜欢
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 2021-12-29
      • 2016-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多