2010-12-08 11 views
3

XSDファイルで生成するメッセージフォーマットを定義するプロジェクトが1つあります。Maven - 依存関係としてXSDを持つ

これらのXSDファイルを他のプロジェクトの依存関係とする最も簡単な方法は何ですか?

私はmaven-build-helper attach-artifactの目標を使用して自分のXSDファイルを添付してみました。

優れたメカニズムがありますか?

+0

あなたは、プロジェクトのパッケージタイプは瓶やポンポンとは対照的に、をxsdになりたいですか? – sblundy

+0

アタッチメントのアーチファクトのゴールは得られるほど良好です。他のすべてのソリューションはもっと複雑な方法で同じことをするでしょう: –

答えて

3

アタッチメントの目標はわかりませんが、頼んだようなことをしました。 wsdlとxsdファイルを使って、Webサービス成果物とそのクライアント成果物をaxis2で記述しました。

  1. 私は のsrc /メイン/リソース/ META-INFおよび他 何も 'WSDL' という名前の独自の のプロジェクトで私のWSDLとXSDを置きます。
  2. 私は Java-SOAP-Codeのために 'soap'という名前のプロジェクト を作成しました。このプロジェクトでは、私は は 依存関係としてWSDLプロジェクトを追加し、 初期化フェーズで ターゲットフォルダに Mavenの依存性 - プラグイン経由でWSDLと XSDファイルを展開しました。だから私はそれを使用して SOAPコードを生成することができます。
  3. soap プロジェクト 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> 

お役に立てば幸いです。

挨拶マイケル

+0

これは大きな助けとなりました – Err

関連する問題