【问题标题】:JAXB generates duplicate ObjectFactory for package already in episodeJAXB 为已在剧集中的包生成重复的 ObjectFactory
【发布时间】:2015-09-17 16:10:43
【问题描述】:

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

尽管如此,JAXB 不断为导入的模式生成 ObjectFactories,从而导致类加载器冲突和运行时的不当行为。

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

【问题讨论】:

  • 啊,我的好老 maven-antrun-plugin 仍在使用 ;-)
  • 如果您使用的是this,那么导入的架构似乎未被识别为剧集。你的 POM 是什么样的?
  • @Kenney 不一定。即使有剧集,XJC 有时仍会生成几乎空的ObjectFactory

标签: java maven jaxb xjc


【解决方案1】:

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

但是,如果您生成所有内容 - 尽管有剧集 - 您的配置可能存在问题。确保您的剧集工件包含有效的 META-INF\sun-jaxb.episodeschemaBindings map="false" 用于您的包。

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

【讨论】:

  • JAXB 项目中是否存在错误?这个会得到修复吗?有任何想法吗?谢谢!
【解决方案2】:

您生成的类是否经常动态/更改?生成一次后,您可以摆脱不再使用的任何生成代码。有时手动编写映射类会更容易,因为您可以使用诸如 @XmJavaTypeAdatper 之类的东西,而生成的代码将没有这些。

【讨论】:

    猜你喜欢
    • 2011-09-20
    • 2012-11-16
    • 2015-07-16
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多