partir - generate client from wsdl java cxf
cxf-codegen-plugin no genera fuentes (3)
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.
Estoy intentando que cxf-codegen-plugin genere fuentes desde mi archivo wsdl. Al llamar al manual de wsdl2java, se generan las clases deseadas, pero al usar mvn generate-sources no ocurre nada y aparece el mensaje "No se necesitan objetivos para el proyecto". Llamar al plugin directamente no ayuda.
El extracto de mis poms sigue:
<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>
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.
Eso se parece mucho a la forma en que (con éxito) configuro ese complemento en uno de mis proyectos; Yo esperaría que eso funcione. (Creo que puede omitir <sourceRoot>
; la configuración predeterminada para eso es la que ha indicado).
Lo único que puedo pensar sería si hubiera puesto esa configuración de complemento en un perfil Maven no activo o (más probablemente) en la sección <pluginManagement>
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).