我使用maven-jaxb2-plugin从xsd生成一些类。在子pom中定义如下:
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.8.0</version>
<executions>
<execution>
<id>jaxb2-generate</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<forceRegenerate>true</forceRegenerate>
<!-- Generate classes from XSD (XML Schema) using JAXB -->
<schemaDirectory>src/main/resources/com/reportcenter/settings/</schemaDirectory>
<generatePackage>com.reportcenter.settings</generatePackage>
<schemaIncludes>
<include>**/*.xsd</include>
</schemaIncludes>
<strict>false</strict>
<extension>true</extension>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version>0.6.2</version>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.2</version>
</plugin>
</plugins>
<args>
<arg>-Xannotate</arg>
<arg>-XtoString</arg>
<arg>-Xcopyable</arg>
</args>
</configuration>
</plugin>
</plugins>
</pluginManagement>问题是jaxb2不是从mvn install或mvn compile或mv generate-sources调用的。如果我调用mvn jaxb2:generate (作为目标的名称),那么创建的类是OK的。我看了这里的一些问题,并使用了提供的答案,但我仍然遗漏了一些东西。谢谢。
发布于 2015-01-05 00:46:18
免责声明:我是maven-jaxb2-plugin的作者。
看起来你只是在pluginManagement中配置插件,但实际上并没有在你的build部件中使用它。
它应该是这样的:
<project ...>
...
<build>
<plugins>
...
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.12.3</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
...
</project>关于您的配置的其他几点备注:
0.8.0是一个非常旧的版本,1.6.forceRegenerate.generatePackage.0.12.3 source/target版本来配置maven-compiler-plugin使用绑定文件而不是Maven版本的jaxb2-basics是0.9.2。发布于 2015-05-22 13:27:11
我遇到了一个与此插件和Eclipse Maven集成相关的错误。
大多数对答案的搜索都是徒劳的,但通常会导致这个帖子。所以,我将发布这个问题,并在这里为遇到它的任何其他人提供一个解决方法。
在命令行中正确使用maven-jaxb2- plugin :0.12.3插件时-在Eclipse中,源代码生成将失败,并显示以下错误:
目标org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:generate的默认错误执行失败:执行org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:generate: com/sun/xml/
/api/ErrorListener时缺少必需的类
添加包含它所查找的类的jar文件的各种尝试只会导致另一个类丢失,导致jar文件地狱和无法解决的不匹配类的兔子洞。
我不知道这里的问题是在Eclipse / M2E集成中出了问题,还是在maven-jaxb2-plugin的依赖堆栈中出现了问题。
但是解决方案是使用JDK而不是JRE启动Eclipse本身(而不是安装到eclipse中的JRE/JDK)。
最简单的方法是将-vm参数添加到eclipse.ini文件中:
-startup plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
-vm C:\Program Files\Java\jdk1.8.0_31\bin\javaw.exe
--launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20150204-1316
-product
...snip...发布于 2017-04-11 20:52:32
升级到版本0.13.2 + Kudos到@lexicore查看下面的评论
https://stackoverflow.com/questions/27767384
复制相似问题