How do I tell the maven-jaxb2-plugin to run xjc on all .xsd files in a maven dependency?

倖福魔咒の 提交于 2019-12-25 04:28:09

问题


I'm using the maven-jaxb2-plugin and my .xsd files are in a maven dependency. The documentation shows that you specify a .xsd in a maven dependency like this

<schema>
    <!-- Specifies a schema from the Maven artifact. -->
    <dependencyResource>
        <groupId>org.jvnet.jaxb2.maven2</groupId>
        <artifactId>maven-jaxb2-plugin-tests-po</artifactId>
        <!--  Version of the artifact. May be omitted.
        The plugin will then try to find the version using
        the dependencyManagement and dependencies of the project. -->
        <version>${project.version}</version>
        <!-- Path of the resource within the artifact. -->
        <resource>purchaseorder.xsd</resource>
    </dependencyResource>
</schema>

I want to run xjc on all .xsd files in the dependent .jar file. The .xsd files are in different directories within the .jar file. I've tried this

<resource>**/*.xsd</resource>

but that fails with this Exception

org.xml.sax.SAXParseException; schema_reference.4: Failed to read schema document 'maven:com.dg:XSD:jar::5.0.3.4!/**/*.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.

Is there a way to specify all .xsd files in a mvn dependency when they are in different directories?

Also, can xjc sort out a dependency tree on a group of .xsd files where one .xsd file depends on another, which may depend on another, ...?

Thanks.


回答1:


Is there a way to specify all .xsd files in a mvn dependency when they are in different directories?

No, at the moment you'll have to specify individual schema files. You don't need to specify all of them, just the "root" ones. Feel free to file an issue for that.

Also, can xjc sort out a dependency tree on a group of .xsd files where one .xsd file depends on another, which may depend on another, ...?

Yes, XJC resolves schema dependencies recursively. You can compile a large and deep schema forest, I'm doing this routinely.



来源:https://stackoverflow.com/questions/32533346/how-do-i-tell-the-maven-jaxb2-plugin-to-run-xjc-on-all-xsd-files-in-a-maven-dep

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!