Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jaxb2-maven-plugin with external XSD dependencies

We have a common set of XSDs (datatypes, vocabulary, etc.) we're generating with the jaxb2-maven-plugin in its own Maven project. In a second project, I need to refer to one or more of those XSDs at compile time but don't want them included in the resulting artifact. I've created a catalog file, which works fine except I get everything in it.

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.6</version>
<executions>
    <execution>
        <goals>
            <goal>xjc</goal>
        </goals>
    </execution>
</executions>
<configuration>
    <outputDirectory>${basedir}/src/main/java</outputDirectory>
    <target>2.1</target>
    <catalog>catalog.cat</catalog>
</configuration>

I've pored over the plugin docs, but they're woefully light on detail. Is there any way to get reuse out of common schemas without every project having to take a copy of them?

Thanks

like image 705
MolonLabe Avatar asked Jan 24 '26 05:01

MolonLabe


1 Answers

This is something my maven-jaxb2-plugin can do:

Compiling schema from Maven Artifact

The documentation site is currently very unstable so here's snippets of the documentation.

<configuration>                                                                                         
    <forceRegenerate>true</forceRegenerate>                                                         
    <schemas>                                                                                       
        <schema>
            <dependencyResource>                                                            
                <groupId>org.jvnet.jaxb2.maven2</groupId>                               
                <artifactId>maven-jaxb2-plugin-tests-po</artifactId>                    
                <!-- Can be defined in project dependencies or dependency management -->
                <version>${project.version}</version>                                   
                <resource>purchaseorder.xsd</resource>                                  
            </dependencyResource>                                                           
        </schema>                                                                               
    </schemas>                                                                                      
</configuration>

Here's a sample project.

like image 134
lexicore Avatar answered Jan 26 '26 22:01

lexicore



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!