1

如果有其他项目依赖的 Java 库(通过 Maven 依赖 .jar)。在这个库中有一个 XSD 文件,它定义了一些xs:simpleTypes,这些 s 也用xjc:javaType将简单类型映射到该库中已经存在的 java 类和适配器类的元素进行了注释。这一切都很好,但现在我想创建一个xs:complexType. 我让org.jvnet.jaxb2.maven2:maven-jaxb2-plugin0.8.2 版从复杂类型和附加的 .episode 文件中创建一些 java bean。

在我的第二个项目中,我导入库,将 xsd 文件解压缩到模式目录中,然后让 project2.xsd 导入 library.xsd,因为它使用简单和复杂的类型。为了避免重复生成已经存在的 bean,我将库添加episodesorg.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 回答