【问题标题】:Maven incorrect version of JIBX getting picked from POM.xml从 POM.xml 中选择的 Maven 不正确的 JIBX 版本
【发布时间】:2018-09-10 08:45:53
【问题描述】:

我有一个在 JAVA 7 上顺利运行的 maven 项目,但最近我想将所有内容从 1.7 迁移到 JDK 1.8,但由于 JIBX 库,我开始收到错误跟踪。在一个类似的线程上:Check this StackOverflow 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 中尝试过,但仍然没有帮助。有人可以在这里提供任何线索吗? 谢谢

编辑:POM.xml 的完整链接 - https://ideone.com/IfN9FK (有字符限制,所以我必须提供 ideone 链接,它以文本形式存在)

【问题讨论】:

  • 你能分享你的完整 pom.xml 吗?
  • 我认为您在其他依赖项中有 1.2.2。运行此命令并检查 jibx 版本: mvn dependency:tree
  • @RahimDastar 感谢您的输入,我运行该命令,我可以看到一些有关 jibx 库的痕迹:“org.jibx:jibx-run:jar:1.3.1:compile”和“org.jibx:jibx-run:jar:1.3.1:compile”和“org. jibx:jibx-extras:jar:1.3.1:compile" 这是否意味着正在使用正确的 1.3.1 版本?
  • @Mureinik 我已经更新了完整的 pom,你能检查一下吗?

标签: java maven jibx maven-jibx


【解决方案1】:

声明 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>

【讨论】:

  • 谢谢@Mureinik,实际上我有两个 POM - 一个用于所有项目,一个用于单个项目。我附上了主要的 POM 和项目特定的 POM 是这个 - ideone.com/w22UKo 我相信你在上面的 POM 中建议更改正确吗?
  • 非常感谢,构建成功,这真的很有帮助(Y)
【解决方案2】:

对于 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-13
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 2019-06-17
    • 2021-12-02
    • 1970-01-01
    相关资源
    最近更新 更多