2012-06-25 53 views
4

我在我的POM文件中有下面的配置。尤其是jaxb-fluent-api配置。下面的配置是什麼意思(jaxb-fluent-api)?

<plugin> 
    <groupId>org.jvnet.jaxb2.maven2</groupId> 
    <artifactId>maven-jaxb2-plugin</artifactId> 
    <configuration> 
     <extension>true</extension> 
     <args> 
      <arg>-Xfluent-api</arg> 
     </args> 
     <schemaDirectory>src/main/resources</schemaDirectory> 
     <plugins> 
      <plugin> 
       <groupId>net.java.dev.jaxb2-commons</groupId> 
       <artifactId>jaxb-fluent-api</artifactId> 
       <version>2.1.8</version> 
      </plugin> 
     </plugins> 
    </configuration> 
    <executions> 
     <execution> 
      <goals> 
       <goal>generate</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

沒有配置jaxb-fluent-api實體可以從xsd生成。這裏有什麼是利用jaxb-fluent-api

謝謝!

回答

4

jaxb-fluent-api是一個JAXB擴展,允許您在流利api樣式中生成您的代碼。現在,流利的API是一種設計你的課堂方法的方法,所以他們總是返回this而不是void

有(我已經縮短有點爲簡潔起見,請訪問:the site全實例)有關project wiki一個很好的例子:

普通JAXB - 生成的代碼必須使用這樣的:

Project project = factory.createProject(); 

project.setModelVersion("4.0.0"); 
project.setGroupId("redmosquito") 
project.setArtifactId("jaxb-fluent-api-ext") 
project.setPackaging("jar") 
project.setVersion("0.0.1") 
project.setName("JAXB Fluent API Extensions"); 

隨着jaxb-fluent-api擴展,你可以這樣上面的代碼:

Project project = factory.createProject() 
    .withModelVersion("4.0.0"); 
    .withGroupId("redmosquito") 
    .withArtifactId("jaxb-fluent-api-ext") 
    .withPackaging("jar") 
    .withVersion("0.0.1") 
    .withName("JAXB Fluent API Extensions"); 

這基本上是什麼流利的api就是這樣。

+0

我知道答案不是關於''jaxb-fluent-api'的'net.java.dev.jaxb2-commons'味道](http://search.maven.org/#artifactdetails|net.java。 dev.jaxb2-commons | jaxb-fluent-api | 2.1.8 | jar),如問題中所述。這是因爲該項目現在似乎已經死了(網頁沒有響應)。它是關於一個名爲['jaxb-fluent-api-ext'](http://code.google.com/p/jaxb-fluent-api-ext/)的庫,託管在google-code上,基本上也是這樣事情。我認爲這對原始問題並沒有太大的區別,因爲基本問題是關於流利的api,而不是圖書館本身。 – npe