0

JAX-WS を使用する Maven プロジェクト、特に共通のスキーマを共有する複数の JAX-WS プロジェクトを構築するための最良の方法を探しています。

たとえば、次の構造がある場合

ProjectA    
    |- pom.xml    
    \- src
         \- wsdl
              \- projectA.wsdl 
ProjectB    
    |- pom.xml    
    \- src
         \- wsdl
              \- projectB.wsdl

ProjectAProjectBimportの両方CommonTypes.xsd。CommonTypes.xsd をどこに配置し、jaxws-maven-plugin が正しく処理できるように ProjectA と ProjectB をどのように構成する必要がありますか?

4

1 に答える 1

0

CommonTypes.xsd を、Maven リポジトリにデプロイされる追加の Maven プロジェクトに配置することをお勧めします。簡単にするために、これを jar プロジェクトとして作成し、xsd ファイルのみを含めます。

projectA と B は、maven-dependency-pluginを使用して、wsdl が xsd を想定している ProjectA/B の特定のフォルダーに xsd をアンパックできます。

     <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-dependency-plugin</artifactId>
     <version>2.7</version>
     <executions>
       <execution>
         <id>unpack</id>
         <phase>generate-sources</phase>
         <goals>
           <goal>unpack</goal>
         </goals>
         <configuration>
           <artifactItems>
             <artifactItem>
               <groupId>groupId</groupId>
               <artifactId>commont-types-xsd</artifactId>
               <version>1.0</version>
               <type>jar</type>
               <overWrite>true</overWrite>
               <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
             </artifactItem>
           </artifactItems>
         </configuration>
       </execution>
     </executions>
   </plugin>

jaxws-plugin も generate-sources サイクルで実行されているため、実行順序をいじる必要があるか、依存関係プラグインを以前のフェーズに変更する必要があるかもしれません。

もう 1 つの解決策は、追加のプロジェクトを作成し、すべてのプロジェクトに共通の xsd ファイルを格納し、wsdl がこのサーバーの URL を指すだけでよい場合に、カタログ サービス サーバーのようなものを作成することです。

于 2013-05-10T08:18:10.350 に答える