Maven JAXB2 XJC插件:未涵盖M2E插件执行

我正在使用jaxb2 xjc插件从XSD生成java文件。 因此,我曾经按如下方式配置我的pom.xml:

    org.codehaus.mojo jaxb2-maven-plugin 1.3   generate-sources  xjc     com.mypackage.model ${basedir}/src/main/resources/XSD    org.apache.maven.plugins maven-compiler-plugin  1.6 1.6     

我将我的开发环境改为Eclipse Indigo,这不再适用了。 错误说:“生命周期配置未涵盖插件执行”。 我知道我必须以不同的方式定义我的插件的执行,以便它在我的新环境中工作。

我按照本页上的说明M2E插件执行未涵盖,但在执行generate-sources阶段时未生成源文件。

任何人都可以告诉我如何精确重构我的pom,以便我的文件正确生成?

谢谢你的帮助!

事实certificate,我最终找到了答案! Eclipse与Maven的集成已经知道许多Maven插件的兼容性问题。

如果您可以从Eclipse外部的命令行成功运行Maven构建,但Eclipse在POM中显示“执行未涵盖”错误,请尝试添加此插件:

  ...     org.eclipse.m2e lifecycle-mapping 1.0.0      org.codehaus.mojo jaxb2-maven-plugin [1.3,)  xjc              

如上面的注释所示,这个插件在Eclipse之外没有做任何事情。 它只是告诉Eclipse何时执行JAXB插件,因为Eclipse不够智能,无法自行解决。

我在另一个StackOverflow问题上找到了这个片段,并将其采用到了“jaxb2-maven-plugin”插件,而不是另一个问题中的插件问题。

你也可以切换到支持M2E的maven-jaxb2-plugin 。 史蒂夫珀金斯上面的答案通常适用于那些M2E不支持的插件。

我不确定这是否适用于您的环境,但是如果应用程序被拆分为maven模块,那么我找到的最符合我需求的解决方案是从eclipse IDE中删除所有受影响的模块。 每当我需要重新生成时,我只需使用mvn install从命令行构建。 Eclipse然后使用来自repo的包而不是试图自己构建,不需要runOnIncremental fiddle-around(我使用了很长时间),没有红色模块/行,也构建得更快。