2012-03-01 8 views
0

をMavenの私は多くのXSDおよびWSDLを含む単一のディレクトリを持ってこの質問はthis oneに非常に似ていますが、私の場合は生成クラスと

少し異なっています。これらのうちのいくつかを異なるパッケージに生成する必要があります。

私は次のように私のpom.xmlを設定している:

<plugin> 
      <groupId>org.jvnet.jaxb2.maven2</groupId> 
      <artifactId>maven-jaxb2-plugin</artifactId> 
      <version>0.7.1</version> 
      <executions> 
       <execution> 
        <id>xsd-generate</id> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
        <configuration> 
         <generateDirectory>${project.build.directory}/generated-sources/xsdClasses</generateDirectory> 
         <generatePackage>eu.ist_phosphorus.harmony.common.serviceinterface.databinding.jaxb</generatePackage> 
         <schemaDirectory>resources/webservices</schemaDirectory> 
         <includeSchemas> 
          <!-- we have 3 top level xsd's --> 
          <include>Topology-Types.xsd</include> 
          <include>Reservation-Types.xsd</include> 
          <include>Notification-Types.xsd</include> 

         </includeSchemas> 
         <extension>true</extension> 
         <args> 
          <arg>-Xcopyable</arg> <!-- to make them implement java.lang.Cloneable --> 
         </args> 
         <plugins> 
          <!-- necesary for -Xcopyable to work --> 
          <plugin> 
           <groupId>org.jvnet.jaxb2_commons</groupId> 
           <artifactId>jaxb2-basics</artifactId> 
           <version>0.5.3</version> 
          </plugin> 
         </plugins> 
        </configuration> 
       </execution> 

       <execution> 
        <id>wsdl-reservation-generate</id> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
        <configuration> 
         <generateDirectory>${project.build.directory}/generated-sources/reservationClasses</generateDirectory> 
         <generatePackage>eu.ist_phosphorus.harmony.common.serviceinterface.reservation</generatePackage> 
         <schemaDirectory>resources/webservices/</schemaDirectory> 
         <includeSchemas> 
          <include>Reservation-WS.wsdl</include> 
         </includeSchemas> 
         <extension>true</extension> 
        </configuration> 
       </execution> 

       <execution> 
        <id>wsdl-notification-generate</id> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
        <configuration> 
         <generateDirectory>${project.build.directory}/generated-sources/notificationClasses</generateDirectory> 
         <generatePackage>eu.ist_phosphorus.harmony.common.serviceinterface.notification</generatePackage> 
         <schemaDirectory>resources/webservices</schemaDirectory> 
         <includeSchemas> 
          <include>Notification-WS.wsdl</include> 
         </includeSchemas> 
         <extension>true</extension> 
        </configuration> 
       </execution> 

       <execution> 
        <id>wsdl-topology-generate</id> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
        <configuration> 
         <generateDirectory>${project.build.directory}/generated-sources/topologyClasses</generateDirectory> 
         <generatePackage>eu.ist_phosphorus.harmony.common.serviceinterface.topology</generatePackage> 
         <schemaDirectory>resources/webservices</schemaDirectory> 
         <includeSchemas> 
          <include>Topology-WS.wsdl</include> 
         </includeSchemas> 
         <extension>true</extension> 
        </configuration> 
       </execution> 

      </executions> 

     </plugin> 

私はクラスが生成され、コンパイル、問題は私が含ま一つだけ、すべての生成されたパッケージは、すべて単一のクラスが含まれていることではなく、MVN実行したときスキーマを含む。

すべてのパッケージにincludeSchemasにリストされているクラスのみが含まれるようにプラグインを設定するにはどうすればよいですか?

なぜ私のケースは他の質問と異なっていますか?彼らは、私は考えていない余分なファイルに依存するため、私は別のディレクトリにあるXSD/WSDLファイルを置くことはできません

答えて

1

を複製することは良いアイデアです私はあなたの問題は<includeSchemas>は、少なくともバージョン0.8.0で(<schemaIncludes>でなければならないことであると信じて)

+0

ありがとうございました。私はドキュメントと混同しています。私は非常に似た名前の多くのjaxbプラグインがあることを認識しませんでした – santiagozky

関連する問題