Maven неверная версия JIBX выбирается из POM.xml
У меня есть проект maven, который плавно работает на JAVA 7, но недавно я хотел перенести все с 1.7 на JDK 1.8, но я начал получать трассировки ошибок из-за библиотек JIBX. В аналогичной теме: Проверьте эту ссылку Stackru- я обнаружил, что только 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 в своем рабочем пространстве, но ничего не смог найти, попробовал в папке settings.xml папки.m2, но все равно не помогло. Кто-нибудь может предоставить какие-либо выводы здесь? Спасибо
Изменить: Полная ссылка POM.xml - https://ideone.com/IfN9FK(Существует ограничение по количеству символов, поэтому я должен был предоставить ссылку на идеон, она там в виде текста)
2 ответа
Вы не указываете версию jibx при объявлении зависимости jib:
<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>