2011-12-21 12 views
9

Generalmente, le fonti generate devono essere create nella directory di destinazione. Ma come gestisco le classi che vengono utilizzate solo per il test? Non voglio che queste classi vengano impacchettate nel mio barattolo. C'è un modo comune per affrontare questa situazione?Maven: come gestire i sorgenti generati per il test (solo)?

add-test-source obiettivo

risposta

16

Usa Maven build di plug-helper per aggiungere i file di origine di prova generati al build ->http://mojo.codehaus.org/build-helper-maven-plugin/add-test-source-mojo.html

Assicura che le directory aggiunti da questo obiettivo saranno raccolti automaticamente dal plugin compilatore durante test-compile fase la build.

EDIT

Ecco l'esempio di come generare il codice per testign con CXF-codegen-plugin

<build> 
    <plugins> 
    ... 
    <plugin> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-codegen-plugin</artifactId> 
     <version>${cxf.version}</version> 
     <executions> 
     <execution> 
      <id>generate-test-sources</id> 
      <phase>generate-test-sources</phase> 
      <configuration> 
      <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot> 
      <wsdlOptions> 
       <wsdlOption> 
       <wsdl>${basedir}/src/main/wsdl/myService.wsdl</wsdl> 
       </wsdlOption> 
      </wsdlOptions> 
      </configuration> 
      <goals> 
      <goal>wsdl2java</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>${build-helper-maven-plugin.version}</version> 
     <executions> 
     <execution> 
      <id>add-test-sources</id> 
      <phase>generate-test-sources</phase> 
      <goals> 
      <goal>add-test-source</goal> 
      </goals> 
      <configuration> 
      <sources> 
       <source>${project.build.directory}/generated/cxf</source> 
      </sources> 
      </configuration> 
     </execution> 
     </executions> 
    </plugin> 
    ... 
    </plugins> 
</build> 
+0

avrei dovuto menzionare, che il CXF-codegen-plugin aggiungere il dir come una normale cartella di origine. Quindi sarà ancora impacchettato nel barattolo, no? – lrxw

+0

@mephi. In realtà, dalla descrizione del plugin, sembra che sputa solo file Java dal documento WSDL. Aggiungi 'cxf-codegen-plugin' alla fase' generate-test-sources' e aggiungi 'build-helper-maven-plugin: add-test-source' subito dopo e le classi compilate saranno disponibili solo per l'esecuzione del test –

Problemi correlati