【问题标题】:JAXB2 Basics Mergeable plugin: Setting a custom Merge StrategyJAXB2 Basics Mergeable 插件:设置自定义合并策略
【发布时间】:2011-07-09 10:40:17
【问题描述】:

我已经成功激活了 ant 脚本中的 JAXB2 Basics 'Mergeable' 插件,如下所示:

<target name="generate-sources" depends="clean">

<xjc destdir="${generated.src.dir}" package="${jaxb.package}" extension="true">
  <arg line="
    -Xmergeable
    -Xinheritance"/>

  <binding dir="${altova}">
    <include name="**/*.xjb"/>
  </binding>

  <schema dir="${altova}">
    <include name="**/*.xsd"/>
  </schema>

  <!-- Plugins -->
  <classpath>
    <fileset dir="${xjc.lib}">

      <!-- JAXB2 Basics library -->
      <include name="jaxb2-basics-*.jar"/>

      <!-- JAXB2 Basics library dependencies -->
      <include name="jaxb2-basics-tools-*.jar"/>
      <include name="commons-beanutils-*.jar"/>
      <include name="commons-lang-*.jar"/>
      <include name="commons-logging-*.jar"/>
    </fileset>

    <fileset dir="${webapp.lib}">
      <include name="jaxb2-basics-runtime-*.jar"/>
    </fileset>

    <!-- Contains custom strategy classes -->
    <pathelement location="${webapp.classes}"/>

  </classpath>
</xjc>

它正在工作,并且正确地将“MergeFrom”接口添加到我生成的类中。

我的问题是,每当我尝试使用“mergeStrategyClass”参数指定自定义合并策略时,“MergeFrom”接口会完全从生成的类中消失。我使用的语法如下:

<arg line="
    -Xmergeable-mergeStrategyClass=com.acme.foo.CustomMergeStrategy
    -Xinheritance"/>

这直接取自JAXB2 Basics website 上的示例。 (类路径似乎很好,因为当我故意拼错类时,我得到了 ClassNotFoundException)

ant构建没有抛出任何错误,并且类生成成功,除了缺少接口。

【问题讨论】:

  • 我无法重现这个。请在此处提交问题 (jira.highsource.org/browse/JIIB) 并发送演示问题的示例项目。从代码中,我真的无法想象会发生这种情况。 MyClass implements MergeFrom 是类的第一件事。
  • 仍在等待提交问题。

标签: java jaxb2 xjc jaxb2-basics


【解决方案1】:

您需要有 2 个参数。一个用于激活可合并插件,一个用于指定自定义合并策略类。

-Xmergeable

-Xmergeable-mergeStrategyClass=com.acme.foo.CustomMergeStrategy

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 2011-03-31
    • 2014-06-02
    • 2022-08-02
    • 1970-01-01
    相关资源
    最近更新 更多