我正在尝试使用来自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:生成失败:A 执行时缺少必需的类 org.jvnet.jaxb2.maven2:Maven的JAXB2-插件:0.13.0:产生: COM /太阳/ XML /结合/ API / ErrorListener
有趣的是,我仍然可以使用Maven工具作为Maven安装运行并获取生成的类。但错误信息让我烦恼。这是一些Eclipse的bug还是什么?请帮忙。
这是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>
答案 0 :(得分:5)
我能够通过在我的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
答案 1 :(得分:2)
请Run as
&gt; Maven build...
&gt; Goals: clean generate-resources
&gt; Debug Output
&gt; Run
并发布完整日志(pastebin或其他)。
我怀疑你有一些过时的JDK,但很难说。我无法用Ecliplse Luna 4.4.0和Java 1.7.0_51重现这一点。
免责声明:我是maven-jaxb2-plugin的作者。
答案 2 :(得分:1)
安装JDK 9后,我在CLI上遇到了这个问题;在运行JAVA_HOME
工作之前将mvn clean jaxb2:generate
设置为JDK 8:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/