2012-04-15 13 views
15

Estoy tratando de obtener el cxf-codegen-plugin para generar fuentes desde mi archivo wsdl. Al llamar al manual wsdl2java, se generan las clases deseadas, pero cuando se usa mvn generate-sources no ocurre nada y aparece el mensaje "No se necesitan objetivos para el proyecto". Llamar al plugin directamente no ayuda.cxf-codegen-plugin no genera fuentes

El extracto de mis poms del siguiente modo:

<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> 

Respuesta

18

Eso se parece mucho a la forma en que (con éxito) se configura ese plugin en uno de mis proyectos; Yo esperaría que eso funcione. (Creo que puede omitir el <sourceRoot>; la configuración predeterminada es la que usted indicó)

Lo único que puedo pensar sería si hubiera puesto esa configuración de plugin en un Maven no activo perfil o (más probable) en la sección <pluginManagement> en lugar de la sección recta <plugins>; la sección pluginManagement anula aspectos de la configuración de los complementos, pero en realidad no los habilita para su uso. (Sin embargo, afecta el uso explícito, sé que no quieres hacer eso).

+0

pluginManagement fue. Gracias – Vespasian

+0

@Vespasian Feliz de ayudar. –

2

En mi caso al menos, pensé que no estaba generando código fuente también, pero en realidad lo era. El problema era que la carpeta target/generated/cxf fue designada por Eclipse como una carpeta de origen, lo que no hice manualmente. Así que la fuente estaba en la parte superior de mi proyecto, en la estructura del paquete, no en la estructura de carpetas a continuación, que es donde estaba buscando y esperaba que fuera.

0

En mi caso, siempre y cuando tuviera el viejo directorio de destino (definido en <sourceRoot>/path/to/target</sourceRoot>) no se generaba nada. Solo después de eliminar manualmente el complemento de la carpeta de destino, comenzó a generar las fuentes.