jvnet maven-jaxb2-plugin 版本 0.13.0 的 Eclipse 错误消息

Posted

技术标签:

【中文标题】jvnet maven-jaxb2-plugin 版本 0.13.0 的 Eclipse 错误消息【英文标题】:Eclipse error message for jvnet maven-jaxb2-plugin version 0.13.0 【发布时间】:2016-03-09 18:51:09 【问题描述】:

我正在尝试使用来自 GitHub https://github.com/highsource/maven-jaxb2-plugin/releases 的 jvnet maven-jaxb2-plugin 的示例 JAXB Maven 项目。我正在使用最新版本 0.13.0 并下载了 maven-jaxb2-plugin-sample-jaxbplugins-0.13.0-maven-src.zip

我成功地通过命令行运行 mvn clean install。但是当我将它导入 Eclipse Luna 时,我收到如下错误消息:

目标的执行默认值 org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.13.0:generate failed: A 执行时缺少所需的类 org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.13.0:generate: com/sun/xml/bind/api/ErrorListener

有趣的是,我仍然可以使用 Maven 工具作为 Maven 安装运行并获取生成的类。但是错误消息让我很烦。那是一些 Eclipse 错误还是什么?请帮忙。

这是 pom.xml 的核心部分

<dependencies>
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.2.11</version>
    </dependency>
    <dependency>
        <groupId>org.jvnet.jaxb2_commons</groupId>
        <artifactId>jaxb2-basics-runtime</artifactId>
        <version>0.9.0</version>
    </dependency>
</dependencies>
<build>
    <defaultGoal>install</defaultGoal>
    <plugins>
    <plugin>
        <groupId>org.jvnet.jaxb2.maven2</groupId>
        <artifactId>maven-jaxb2-plugin</artifactId>
        <version>0.13.0</version>
        <executions>
            <execution>
                <goals>
                    <goal>generate</goal>
                </goals>
                <configuration>
                    <args>
                    <arg>-XtoString</arg>
                    <arg>-Xequals</arg>
                    <arg>-XhashCode</arg>
                    <arg>-Xcopyable</arg>
                    </args>
                    <plugins>
                    <plugin>
                    <groupId>org.jvnet.jaxb2_commons</groupId>
                    <artifactId>jaxb2-basics</artifactId>
                    <version>0.9.0</version>
                    </plugin>
                    </plugins>
                </configuration>
            </execution>
        </executions>
    </plugin>
    </plugins>
</build>

【问题讨论】:

【参考方案1】:

我可以通过在我的 eclipse ini 中添加以下行来摆脱这些“问题”,如下所述:

http://diggingthroughcode.blogspot.de/2016/05/trouble-with-maven-jaxb2-plugin-and.html

-vm
C:\Program Files\Java\jdk1.8.0_92\bin\javaw.exe

按 Alt+F5(更新项目)后一切正常。

我的设置 java: 1.8.0_92 / eclipse: Luna SR2 (4.4.2) = STS 3.7.0

【讨论】:

【参考方案2】:

请发送Run as > Maven build... > Goals: clean generate-resources > Debug Output > Run 并发布完整日志(pastebin 或其他)。

我怀疑你有一些过时的 JDK,但很难说。我无法使用 Ecliplse Luna 4.4.0 和 Java 1.7.0_51 重现这一点。

免责声明:我是maven-jaxb2-plugin 的作者。

【讨论】:

谢谢。我实际上正在使用 Ecliplse Luna 4.4.1 和 Java 1.8.0_40 这里是 pastebin 的链接pastebin.com/4ky2GJs7 @ lexicore 该消息出现在 Eclipse 的“问题”视图中。我可以删除它,但它会在 Maven 项目更新后再次显示。我只是在另一个带有 Eclipse Kepler 和 Java 1.6.0_45 的系统中尝试这个项目,一切都很好。我应该责怪 Luna 和 Java 1.8 的结合吗?? @dunfa 尝试先挑出 Eclipse 与 Java 版本。 我可以使用 IBM JVM (J9) v1.6 100% 重现此错误...你依赖私有 api 吗? @spi 确保 Eclispe 使用来自另一个答案的 -vm ... 技巧使用 JDK。不,该插件不依赖于“私有”API。【参考方案3】:

安装 JDK 9 后,我在 CLI 上遇到了这个问题;在这种情况下,在运行 mvn clean jaxb2:generate 之前将 JAVA_HOME 设置为 JDK 8:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/

【讨论】:

以上是关于jvnet maven-jaxb2-plugin 版本 0.13.0 的 Eclipse 错误消息的主要内容,如果未能解决你的问题,请参考以下文章

如何告诉 jaxb / Maven 生成多个模式包?

从 xsd 生成 maven-jaxb2-plugin 类(版本错误)

生命周期配置未涵盖插件执行

将 maven-jaxb-plugin 与 eclipse 和 m2e 一起使用时缺少 ErrorListener

如何使用 gradle 从 WSDL 和 XSD 生成类,相当于 maven-jaxb2-plugin

如何以编程方式设置内容类型?获取 org.jvnet.mimepull.MIMEParsingException:缺少开始边界