2017-03-16 38 views
0

我有一組XSD(A和B),並且它們相應的Java類是由maven-jaxb2-plugin生成的。 Java類位於包P1中。告訴cxf-codegen-plugin使用現有的生成類

在旁邊,我有一個使用某些類型的XSD A和B.

然而,當我從生成WSDL我用CXF-CODEGEN-插件Java類的WSDL,它在封裝P2產生的類型。

==> P1和P2的類型完全相同。

我的問題是:如何告訴cxf-codegen-plugin使用現有的包P1?

謝謝!

Hejk

回答

0

我把我的pom配置。如果你看看我指定軟件包的部分,你會發現我添加了兩個配置。第一個是:

<packagename>http://www.schema.org/something=info.package.p1</packagename> 

編譯XSD到Java類,具有架構http://www.schema.org/something將被存儲到info.package.p1包中的所有文件中這意味着。下面的其他配置意味着如果xsd文件不屬於第一個模式,它們將被存儲到默認包info.package.p2。您可以爲每個模式單獨進行全局配置。

當然,我有兩個軟件包,但您可以在pom文件配置中指定將所有文件放在同一個軟件包中。

綁定文件是可選的。

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-codegen-plugin</artifactId> 
    <version>3.1.7</version> 
    <executions> 
     <execution> 
      <id>generate-sources</id> 
      <phase>generate-sources</phase> 
      <configuration> 
       <sourceRoot>src/main/java</sourceRoot> 
       <wsdlRoot>${basedir}/src/main/resources/wsdl/</wsdlRoot> 
        <includes> 
         <include>*your.wsdl</include> 
        </includes> 
        <wsdlOptions> 
         <wsdlOption> 
          <wsdl>${basedir}/src/main/resources/wsdl/your.wsdl</wsdl> 
          <packagenames> 
           <packagename>http://www.schema.org/something=info.package.p1</packagename> 
           <packagename>info.package.p2</packagename> 
          </packagenames> 
          <bindingFiles> 
           <bindingFile>${basedir}/src/main/resources/bindingFile.xjb</bindingFile> 
          </bindingFiles> 
         </wsdlOption> 
        </wsdlOptions> 
      </configuration> 
      <goals> 
       <goal>wsdl2java</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
相關問題