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>
Другие вопросы по тегам