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 错误消息的主要内容,如果未能解决你的问题,请参考以下文章
从 xsd 生成 maven-jaxb2-plugin 类(版本错误)
将 maven-jaxb-plugin 与 eclipse 和 m2e 一起使用时缺少 ErrorListener
如何使用 gradle 从 WSDL 和 XSD 生成类,相当于 maven-jaxb2-plugin
如何以编程方式设置内容类型?获取 org.jvnet.mimepull.MIMEParsingException:缺少开始边界