2016-09-01 4 views
1

次のMavenのセットアップでその参照XSDをXSDのためのクラスを生成する:どのように、MavenのSRC /テスト中のsrc /メイン

src/main/resources/BaseTypes.xsd 
src/test/resources/MyTypeUsingBaseTypes.xsd 

今私がいる間BaseTypesは、ターゲット/クラスに生成したいと思いますMyTypeUsingBaseTargetをターゲット/テストクラスに追加します。

問題は、BaseTypesもターゲット/テストクラスに生成(=複製)されていることです。

私はorg.jvnet.jaxb2.maven2を使用しています:mavenの-JAXB2 - プラグイン:2つの実行と0.12.3、:

<plugin> 
    <groupId>org.jvnet.jaxb2.maven2</groupId> 
    <artifactId>maven-jaxb2-plugin</artifactId> 
    <version>0.12.3</version> 
    <executions> 
    <execution> 
     <id>gen-schemas</id> 
     <goals> 
     <goal>generate</goal> 
     </goals> 
    </execution> 

    <execution> 
     <id>gen-test-schemas</id> 
     <phase>generate-test-sources</phase> 
     <goals> 
     <goal>generate</goal> 
     </goals> 
     <configuration> 
     <generateDirectory>target/generated-test-sources/xjc</generateDirectory> 
     <addTestCompileSourceRoot>true</addTestCompileSourceRoot> 
     <schemaDirectory>src/test/resources</schemaDirectory> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

答えて

3

たぶん、このような何かが仕事を行うことができますが(パスをチェック

<schemaLanguage>::):あなたの<configuration>次のオプションを追加すること

トライファイル(WSDL、WADL、耳などの種類が何であるかを伝えます)

<schemaIncludes>:これはあなたの特定のファイル

を選択する機会を与える

<generatePackage>:選択した世代のディレクトリ

あなたが実行を必要な数を書き留めることができますこの方法でパッケージに生成された* .javaファイルを置きます異なるスキーマが必要な数だけ

<executions> 
    <execution> 
     <id>xjc-schema2</id> 
     <goals> 
      <goal>generate</goal> 
     </goals> 
     <configuration> 
      <schemaLanguage>wsdl</schemaLanguage> 
      <schemaDirectory>src/test/resources</schemaDirectory> 
      <schemaIncludes> 
       <include>MyTypeUsingBaseTypes.xsd</include> 
      </schemaIncludes> 
      <generatePackage>com.name.of.package.MyTypeUsingBaseTypes</generatePackage> 

      <generateDirectory>target/generated-test-sources/xjc</generateDirectory> 
      <clearOutputDir>false</clearOutputDir> 
     </configuration> 
    </execution> 
    <execution> 
     <id>xjc-schema2v2</id> 
     <goals> 
      <goal>generate</goal> 
     </goals> 
     <configuration> 
      <schemaLanguage>wsdl</schemaLanguage> 
      <schemaDirectory>src/main/resources</schemaDirectory> 
      <schemaIncludes> 
       <include>BaseTypes.xsd</include> 
      </schemaIncludes> 
      <generatePackage>com.name.of.package.BaseTypes</generatePackage> 

      <generateDirectory>target/generated-sources/xjc</generateDirectory> 
      <clearOutputDir>false</clearOutputDir> 
     </configuration> 
    </execution> 
</executions> 
+0

[回答] – JimHawkins

+0

はあなたの提案を説明する必要があります。@JimHawkinsの方がよく見えますか?アドバイスをありがとう –

+0

今は大丈夫です – JimHawkins

関連する問題