JAXB在剧集中为包创建了重复的ObjectFactory

时间:2015-09-17 16:10:44

标签: java maven jaxb xjc

我正在使用JAXB为导入其他模式的模式生成类。 我正在使用maven并配置maven-jaxb2插件以将依赖项用作剧集,以跳过为导入的模式生成类。

尽管如此,JAXB仍然为导入的模式生成ObjectFactories,导致运行时出现类加载器冲突和错误行为。

作为一种解决方法,我正在使用maven-antrun-plugin来清理那些额外的文件。 有没有更好的方法来避免这个问题?

2 个答案:

答案 0 :(得分:8)

即使有剧集,XJC有时会产生一些基本的ObjectFactory。我知道这种效果并将其归因于XJC中的错误。到目前为止,我的解决方法正是您正在应用的方法,即maven-antrun-plugindelete任务,例如here

但是,如果您获得了所有内容 - 尽管有剧集 - 可能会出现配置问题。确保您的剧集工件包含有效META-INF\sun-jaxb.episode schemaBindings map="false"的包。

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

答案 1 :(得分:0)

您生成的课程是否经常变化/变化?您可以删除生成一次后不再使用的任何生成代码。有时手动编写映射类更容易,因为您可以使用生成的代码不具有的@XmJavaTypeAdatper之类的东西。