2013-04-25 80 views
0

的Java JAXB的.xsd Java類 - JAXB - Maven插件無法生成目標相

我已經Maven的基於Web的應用程序,在POM我有以下插件,它應該產生JAXB的.xsd到Java類。

當我執行乾淨,編譯,包xsd類不會生成。當我執行mvn jaxb2時:手動生成它會在generate-source文件夾中生成xsd類,但不包含在戰爭中。

我怎樣才能讓它生成xsd類而無需手動執行「mvn jaxb2:generate」並使其成爲戰爭的一部分?謝謝我提前。

<plugin> 
      <groupId>org.jvnet.jaxb2.maven2</groupId> 
      <artifactId>maven-jaxb2-plugin</artifactId> 
      <version>0.8.3</version> 
      <executions> 
      <execution> 
       <phase>generate-sources</phase> 
       <goals> 
       <goal>generate</goal> 
       </goals> 
      </execution> 
      </executions> 
      <configuration> 
      <schemaDirectory>src/main/wsdl</schemaDirectory> 
      </configuration> 
     </plugin> 

回答

1

當您運行mvn clean compile包時,它不會生成XSD類,因爲generate-sources不是包裝目標的一部分。 戰爭包裝的默認綁定的是 過程資源 編譯 過程檢驗資源 測試編譯
測試 包 安裝 部署

您可以將其套在一個配置文件,並運行MVN使用該配置文件構建 使用配置文件的另一個原因是,只有在需要生成Java類時,纔可以使用此配置文件,其他情況下只需運行常規構建即可。

格式

<profiles> 
    <profile> 
    <id>generateFromSchemas</id> 
     <plugin> 
      ...... 
     </plugin> 
    </profile> 
<profiles> 

MVN -P generateFromSchemas

+0

非常感謝您的回答,它爲我工作。你還可以幫我轉介任何文章,告訴我如何通過個人資料包裝? – 2013-04-25 19:12:11

0

我稍微更新我的插件如下

<plugin> 
     <groupId>org.jvnet.jaxb2.maven2</groupId> 
     <artifactId>maven-jaxb2-plugin</artifactId> 
     <version>0.8.3</version> 
     <executions> 
     <execution> 
      <phase>generate-sources</phase> 
      <goals> 
      <goal>generate</goal> 
      </goals> 
     </execution> 
     </executions> 
     <configuration> 
     <generatePackage>com.equilibriums.samplespringws</generatePackage> 
     <schemaDirectory>src/main/wsdl</schemaDirectory> 
     </configuration> 
    </plugin> 

和下面是行家命令

mvn jaxb2:generate compile package 

,它工作真棒。