2012-04-15 21 views
15

Sto cercando di ottenere il plugin cxf-codegen per generare fonti dal mio file wsdl. Quando si chiama manuale wsdl2java vengono generate le classi desiderate ma quando si utilizza mvn generate-sources non accade nulla e viene visualizzato il messaggio "Nessun obiettivo necessario per il progetto". Chiamare direttamente il plugin non aiuta.cxf-codegen-plugin non genera origini

L'estratto dai miei pon segue:

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-codegen-plugin</artifactId> 
    <version>2.5.2</version> 
    <executions> 
     <execution> 
      <id>generate-sources</id> 
      <phase>generate-sources</phase> 
      <configuration> 
       <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot> 
       <wsdlOptions> 
        <wsdlOption> 
         <wsdl>${basedir}/src/main/MyServiceInterface.wsdl</wsdl> 
        </wsdlOption> 
       </wsdlOptions> 
      </configuration> 
      <goals> 
       <goal>wsdl2java</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

risposta

18

che sembra molto molto simile al modo in cui (con successo) a configurare quel plugin in uno dei miei progetti; Mi aspetterei che funzioni. (Credo che tu possa omettere il <sourceRoot>; l'impostazione predefinita è quella che hai indicato.)

L'unica cosa che posso pensare sarebbe se avessi messo quella configurazione di plugin in un Maven non attivo profilo o (più probabile) nella sezione <pluginManagement> anziché nella sezione diritta <plugins>; la sezione pluginManagement sovrascrive gli aspetti della configurazione dei plugin, ma in realtà non li abilita per l'uso. (Tuttavia influisce sull'uso esplicito, so che non vuoi farlo.)

+0

pluginGestione era. Grazie – Vespasian

+0

@Vespasian Felice di aiutare. –

2

Nel mio caso, almeno, ho pensato che non stava generando il codice sorgente, ma in realtà lo era. Il problema era che la cartella target/generated/cxf è stata designata da Eclipse come una cartella sorgente, cosa che non ho fatto manualmente. Quindi la fonte era verso la parte superiore del mio progetto, nella struttura del pacchetto, non nella struttura delle cartelle sottostante, che è dove stavo cercando e mi aspettavo che fosse.

0

Nel mio caso, finché avevo la vecchia directory di destinazione (definita in <sourceRoot>/path/to/target</sourceRoot>) non veniva generato nulla. Solo dopo aver eliminato manualmente la cartella di destinazione, il plugin ha effettivamente iniziato a generare i sorgenti.