使用JAXB(或其他)在maven中从XSD maven依赖生成Java类

时间:2015-09-30 23:07:04

标签: java maven xsd jaxb

我有一个存储在Maven仓库中的数据模型作为XSD文件。我的目标是创建一个包含代表此模型的所有Java类的jar。我想用maven和JAXB来做这件事。 我知道maven-jaxb2-plugin(codehouse-mojo和java-net,还不确定它们是如何区别的)但我没有看到从maven依赖项中使用XSD作为输入的方法。我是否必须编写自己的插件才能执行此操作?

如果有更好的工具,它不一定是JAXB。

1 个答案:

答案 0 :(得分:1)

免责声明:我是maven-jaxb2-plugin的作者。

检查documentation,它就在那里。请参阅Specifying What To Compile - Specifying URLs, filesets and Maven artifact resources

示例:

var n1Channel:SoundChannel = new narratorAlphabetSounds();
n1Channel.addEventListener(Event.SOUND_COMPLETE, audioComplete);
function audioComplete(e:Event):void
{
gotoAndPlay("step2");  
}

您还可以使用catalogs将架构网址重写为Maven artifact resources

示例:

<configuration>                                                                                         
    <schemas>                                                                                       
        <!--
            Compiles a schema which resides
            in another Maven artifact.
        -->
        <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>

这会将URI REWRITE_SYSTEM "http://schemas.opengis.net" "maven:org.jvnet.ogc:ogc-schemas:jar::!/ogc" 重写为http://schemas.opengis.net/ows/2.0/owsAll.xsd。这将引用maven:org.jvnet.ogc:ogc-schemas:jar::!/ogc/ows/2.0/owsAll.xsd JAR工件中的ogc/ows/2.0/owsAll.xsd资源。

据我所知,这些功能对于maven-jaxb2-plugin来说是唯一的。