をマージし、次のように私は正常にAntスクリプトでJAXB2基本「マージ可能」プラグインを有効にしている:JAXB2基本マージ可能プラグイン:カスタム設定戦略
<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'インターフェイスが消えてしまうことです。これはJAXB2 Basics website上の例からまっすぐに取られる
<arg line="
-Xmergeable-mergeStrategyClass=com.acme.foo.CustomMergeStrategy
-Xinheritance"/>
次のように私が使用しています構文は次のとおりです。 (クラスパスはうまくいくように思えますが、意図的にクラスを綴っていないと、ClassNotFoundExceptionが発生します)
antビルドではスローされず、クラスが正常に生成されます。
私はこれを再現することはできません。ここに問題を提出してください(http://jira.highsource.org/browse/JIIB)、問題を示すサンプルプロジェクトを送ってください。コードから、私は実際にこれが起こっていると想像することはできません。 MyClassはMergeFromを実装しています。クラスで最初に行われることです。 – lexicore
まだ問題が提起されるのを待っています。 – lexicore