2010-12-08 93 views
3

我们有一个项目定义了它使用XSD文件生成的消息格式。Maven - 将XSD作为依赖关系

将这些XSD文件作为另一个项目的依赖关系的最简单方法是什么?

我在看使用maven-build-helper attach-artifact目标来附加我的XSD文件。

有没有更好的机制?

+0

您是否希望项目包装类型为xsd而不是jar或pom? – sblundy 2010-12-08 16:25:57

+0

attach-artifact的目标是一样的好。其他解决方案将以更复杂的方式完成同样的事情:-) – 2010-12-08 16:32:48

回答

3

我不知道attach-artifact的目标,但我做了一些像你一样的要求。我有wsdl和xsd文件用axis2编写Webservice工件及其客户端工件。

  1. 我把我的WSDL和XSD在名为 'WSDL' 一个自己 项目 的src /主/资源/ META-INF和 没有别的。
  2. 我为生成的 Java-SOAP-Code制作了一个名为'soap'的项目 。在这个项目中我 添加的WSDL项目作为 依赖,并通过 Maven的依赖,插件的 目标文件夹中的 初始化阶段解压WSDL和 XSD文件。所以我可以用它来生成SOAP-Code 。
  3. 肥皂 项目我用作 Webservice项目和 客户端项目的依赖项。

我把所有这些项目放到一个多模块项目中,以便我可以一起构建所有项目。 我想对你重要的部分是依赖-插件的配置:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <executions> 
     <execution> 
     <id>unpack-wsdl-dependency</id> 
     <phase>initialize</phase> 
     <goals> 
      <goal>unpack</goal> 
     </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <artifactItems> 
     <artifactItem> 
      <groupId>${groupId}</groupId> 
      <artifactId>wsdl</artifactId> 
      <outputDirectory>target/wsdl</outputDirectory> 
      <includes>META-INF/*.wsdl,META-INF/*.xsd</includes> 
     </artifactItem> 
     </artifactItems> 
     <!-- other configurations here --> 
    </configuration> 
    </plugin> 

希望有所帮助。

问候迈克尔