1

他のプロジェクトが依存するJavaライブラリを取得した場合(Mavenを介した.jar依存関係)。このライブラリには、そのライブラリ内の既存のJavaクラスおよびアダプタクラスに単純型をマッピングする要素xs:simpleTypeで注釈が付けられたいくつかのsを定義するXSDファイルがあります。xjc:javaTypeこれはすべて正常に機能しますが、今はを作成したいと思いましたxs:complexTypeorg.jvnet.jaxb2.maven2:maven-jaxb2-pluginバージョン0.8.2で、複合型と追加の.episodeファイルからいくつかのJavaBeanを作成します。

2番目のプロジェクトでは、ライブラリをインポートし、xsdファイルをスキーマディレクトリに解凍し、project2.xsdにlibrary.xsdをインポートさせます。これは、単純型と複雑型を使用しているためです。既存のBeanの二重生成を回避するために、のepisodesタグに依存関係としてライブラリを追加しましたorg.jvnet.jaxb2.maven2:maven-jaxb2-plugin。しかし、プラグインはxsdファイルを解析できないと文句を言い、すべての型定義行で例外をスローします。

エピソード(simpleTypesは含まれていませんか?)とxjc:javaTypeアノテーションの使用に問題があると思いますか?この問題に対する何らかの回避策はありますか?私はこの問題に関してウェブ上で多くを見つけることができません。ヒントに感謝します。

4

1 に答える 1

1

maven-hyperjaxb3-pluginを使用して同じことを達成しました。方法を確認してください。

            <plugin>
                <groupId>org.jvnet.hyperjaxb3</groupId>
                <artifactId>maven-hyperjaxb3-plugin</artifactId>
                <version>0.5.4</version>
                <executions>
                <execution>
                    <id>id1</id>
                    <inherited>false</inherited>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <args>
                            <param>-npa</param>
                        </args>
                        <generateDirectory>target/generated-sources/xjc2</generateDirectory>
                        <generatePackage>com.target.package</generatePackage>
                        <extension>true</extension>
                        <schemaIncludes>
                            <include>mine.xsd</include>
                        </schemaIncludes>
                        <forceRegenerate>false</forceRegenerate>
                        <removeOldOutput>true</removeOldOutput>
                        <verbose>true</verbose>
                    </configuration>
                </execution>
</executions>
<dependencies>
                    <dependency>
                        <groupId>com.sun.xml.bind</groupId>
                        <artifactId>jaxb-impl</artifactId>
                        <version>2.1.12</version>
                    </dependency>
                </dependencies>
            </plugin>

プロジェクトの依存関係は次のとおりです。

<dependencies>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.1.12</version>
        </dependency>

        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.1</version>
        </dependency>

        <dependency>
            <groupId>org.jvnet.hyperjaxb3</groupId>
            <artifactId>hyperjaxb3-ejb-runtime</artifactId>
            <version>0.3</version>
        </dependency>

        <!-- Roundtrip -->
        <dependency>
            <groupId>org.jvnet.hyperjaxb3</groupId>
            <artifactId>hyperjaxb3-ejb-roundtrip
            </artifactId>
            <version>0.3</version>
        </dependency>
    </dependencies>

単純なタイプと複雑なタイプを定義していて、それは魅力のように機能します。それが役に立てば幸い!

于 2012-09-27T12:07:23.837 に答える