2017-07-06 21 views
0

プラグインjaxb2-maven-pluginを使用して、wsdlからJavaクラスを作成しようとしています。jaxb2-maven-pluginバージョン2でWSDLからクラスjavaを作成する方法は?

私はバージョン1.5でそれを取得しており、コード(リンク:Generate classes with jaxb2-maven-plugin from WSDL):以下の

 <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>jaxb2-maven-plugin</artifactId> 
       <version>1.5</version> 
       <executions> 
        <execution> 
         <id>xjc</id> 
         <goals> 
          <goal>xjc</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <!-- Package to store the generated file --> 
        <packageName>com.example.demo.wsdl</packageName> 
        <!-- Treat the input as WSDL --> 
        <wsdl>true</wsdl> 
        <!-- Input is not XML schema --> 
        <xmlschema>false</xmlschema> 
        <!-- The WSDL file that you saved earlier --> 
        <schemaFiles>horarios.wsdl</schemaFiles> 
        <!-- The location of the WSDL file --> 
        <schemaDirectory>${project.basedir}/src/main/resources</schemaDirectory> 
        <!-- The output directory to store the generated Java files --> 
        <outputDirectory>${project.basedir}/src/main/java</outputDirectory> 
        <!-- Don't clear output directory on each run --> 
        <clearOutputDir>false</clearOutputDir> 
       </configuration> 
      </plugin> 

をしかし、私は2.3.1に変更されたとき、私は以下の間違いを得る:

Failed to execute goal org.codehaus.mojo:jaxb2-maven-plugin:2.3.1:xjc (xjc) on project demo: MojoExecutionException: NoSchemasException -> [Help 1] 

を誰かがこの新しいプラグインバージョンでWSDLファイルを使用する方法を知っていますか?

答えて

0

私はすでに解決策を見つけました。

   <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>jaxb2-maven-plugin</artifactId> 
       <version>2.3.1</version> 
       <executions> 
        <execution> 
         <id>xjc</id> 
         <goals> 
          <goal>xjc</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <packageName>com.example.demo.wsdl</packageName> 
        <sourceType>wsdl</sourceType> 
        <sources> 
         <source>src/main/resources/horarios.wsdl</source> 
        </sources> 
        <outputDirectory>target/generated-sources/</outputDirectory> 
        <clearOutputDir>false</clearOutputDir> 
       </configuration> 
      </plugin> 

差は唯一sintaxisではありません。JAXB2-mavenの-プラグインのバージョンが> = 2.0のとき

あなたがフォローの設定を使用する必要があります。そのバージョンはproyect(src/main/java)内にクラスを作成せず、outputDirectorypackageNameに書き込んだディレクトリに作成します。生成されたクラスを使用すると、同じproyectにあるかのように透明になります。

+0

詳細情報: https://stackoverflow.com/questions/35242941/jaxb-maven-plugin-not-generating-classes –

0

あなたはXSDで開始したい場合:

   <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>jaxb2-maven-plugin</artifactId> 
       <version>2.3.1</version> 
       <executions> 
        <execution> 
         <id>xjc</id> 
         <goals> 
          <goal>xjc</goal> 
         </goals> 
        </execution> 
       </executions> 

       <configuration> 
        <xjbSources> 
         <xjbSource>src/main/resources/global.xjb</xjbSource> 
        </xjbSources> 
        <sources> 
         <source>src/main/resources/Ventas.xsd</source> 
        </sources> 
        <outputDirectory>${basedir}/src/main/java</outputDirectory> 
        <clearOutputDir>false</clearOutputDir> 
       </configuration> 
      </plugin> 
関連
関連する問題