从 POM.xml 中选取了 JIBX 的 Maven 错误版本
Maven incorrect version of JIBX getting picked from POM.xml
我有一个 运行 在 JAVA 7 上顺利运行的 Maven 项目,但最近我想将所有内容从 1.7 迁移到 JDK 1.8,但我开始收到错误跟踪,因为JIBX 库。在类似的线程上:Check this Whosebug link- 我发现只有 JIBX 版本 1.3.0 或更高版本与 JDK 8 兼容。
所以我在 POM.xml 中做了以下更改:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<ejb-compile.dependency.ant-nodeps.version>1.6.5</ejb-compile.dependency.ant-nodeps.version>
<jdk-home>${jdk16.home}</jdk-home>
<maven.ejb.skip>true</maven.ejb.skip>
<jaxp.version>1.3</jaxp.version>
<jibx.version>1.3.1</jibx.version>
<distributed.context.api.version>1.1.12</distributed.context.api.version>
<distributed.context.impl.version>1.1.12</distributed.context.impl.version>
<generic.context.version>0.1.2</generic.context.version>
<something.uf.version>2.5.9</something.uf.version>
<!-- JConnect -->
<jconnect.version>0.11.1</jconnect.version>
<jconnect.majorversion>0.11</jconnect.majorversion>
但是我得到了以下堆栈跟踪,但我不知道它是从哪里选择 jibx 1.2.2 的,如错误中所示:
我也在我的工作区中搜索了 1.2.2 声明但找不到任何东西,在 .m2 文件夹的 settings.xml 中尝试但仍然没有帮助。有人可以在这里提供任何线索吗?
谢谢
编辑:完整 Link 共 POM.xml - https://ideone.com/IfN9FK
(有字符限制,所以我不得不提供 ideone link,它是文本)
您在声明 jib 依赖项时没有指定 jibx 版本:
<plugin>
<groupId>org.jibx</groupId>
<artifactId>maven-jibx-plugin</artifactId>
<version>1.3.0</version> <!-- Here! -->
<configuration>
<directory>src/main/jibx</directory>
<includes>
<includes>*.xml</includes>
</includes>
<verbose>${jibx.verbose}</verbose>
</configuration>
<executions>
<execution>
<goals>
<goal>bind</goal>
</goals>
</execution>
</executions>
</plugin>
对于 Java 1.8+,使用以下依赖项。它会工作正常。我验证了。
<plugin>
<groupId>org.jibx</groupId>
<artifactId>maven-jibx-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<goals>
<goal>bind</goal>
</goals>
</execution>
</executions>
<configuration>
<directory>src/main/jibx-bindings</directory>
<includes>
<include>*binding*.xml</include>
</includes>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.bcel</groupId>
<artifactId>bcel</artifactId>
<version>6.3</version>
</dependency>
</dependencies>
</plugin>
我有一个 运行 在 JAVA 7 上顺利运行的 Maven 项目,但最近我想将所有内容从 1.7 迁移到 JDK 1.8,但我开始收到错误跟踪,因为JIBX 库。在类似的线程上:Check this Whosebug link- 我发现只有 JIBX 版本 1.3.0 或更高版本与 JDK 8 兼容。
所以我在 POM.xml 中做了以下更改:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<ejb-compile.dependency.ant-nodeps.version>1.6.5</ejb-compile.dependency.ant-nodeps.version>
<jdk-home>${jdk16.home}</jdk-home>
<maven.ejb.skip>true</maven.ejb.skip>
<jaxp.version>1.3</jaxp.version>
<jibx.version>1.3.1</jibx.version>
<distributed.context.api.version>1.1.12</distributed.context.api.version>
<distributed.context.impl.version>1.1.12</distributed.context.impl.version>
<generic.context.version>0.1.2</generic.context.version>
<something.uf.version>2.5.9</something.uf.version>
<!-- JConnect -->
<jconnect.version>0.11.1</jconnect.version>
<jconnect.majorversion>0.11</jconnect.majorversion>
但是我得到了以下堆栈跟踪,但我不知道它是从哪里选择 jibx 1.2.2 的,如错误中所示:
编辑:完整 Link 共 POM.xml - https://ideone.com/IfN9FK (有字符限制,所以我不得不提供 ideone link,它是文本)
您在声明 jib 依赖项时没有指定 jibx 版本:
<plugin>
<groupId>org.jibx</groupId>
<artifactId>maven-jibx-plugin</artifactId>
<version>1.3.0</version> <!-- Here! -->
<configuration>
<directory>src/main/jibx</directory>
<includes>
<includes>*.xml</includes>
</includes>
<verbose>${jibx.verbose}</verbose>
</configuration>
<executions>
<execution>
<goals>
<goal>bind</goal>
</goals>
</execution>
</executions>
</plugin>
对于 Java 1.8+,使用以下依赖项。它会工作正常。我验证了。
<plugin>
<groupId>org.jibx</groupId>
<artifactId>maven-jibx-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<goals>
<goal>bind</goal>
</goals>
</execution>
</executions>
<configuration>
<directory>src/main/jibx-bindings</directory>
<includes>
<include>*binding*.xml</include>
</includes>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.bcel</groupId>
<artifactId>bcel</artifactId>
<version>6.3</version>
</dependency>
</dependencies>
</plugin>