2012-05-24 12 views
11

Genero fuentes Java desde un archivo wsdl. Estas fuentes no están bajo control de versión (pero el wsdl es). Usamos el complemento cxf-codegen-plugin en maven y las clases generadas se generan en <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>.define el directorio fuente adicional en maven

Esto funciona todo bien en maven.

Tengo que definir este directorio como directorio fuente adicional en Intelij Idea. (target está normalmente excluido).

Pero cada vez que el proyecto experto en InteliJ Idea (debido a cambios pom) I-import re, tengo que editar manualmente la estructura del proyecto de Idea y redefinir el directorio de origen adición.

¿Hay alguna manera en que pueda definir este directorio fuente adicional en maven, por lo que Idea lo recoge al volver a cargar, o decirle a Idea que no olvide la definición del directorio de origen manual?

+2

¿verificó http://wiki.jetbrains.net/intellij/Maven_FAQ? – CrazyCoder

+0

@CrazyCoder Debería haber revisado su wiki primero. "generado-fuentes" hizo el truco. Gracias. ¿Puedes publicarlo como respuesta para que yo pueda aceptarlo? – bert

Respuesta

11

Este caso se describe en el IntelliJ IDEA Maven FAQ, Fuentes generadas sección:

especificar el directorio raíz de su fuente cuando volver a importar un proyecto.
Puede seleccionar una de las siguientes opciones:

  • detectar automáticamente Esta es una opción por defecto. Cuando selecciona esta opción, IntelliJ IDEA detecta automáticamente la ubicación de las fuentes generadas. IntelliJ IDEA también detecta qué directorio marcar como raíz de origen. Sin embargo, IntelliJ IDEA busca las fuentes generadas solo en directorios target/generated-sources y target/generated-sources/*.

  • target/generated-sources Esta opción le permite marcar el directorio como raíz de origen manualmente.

  • subdirectorios de "target/generated-sources" Esta opción le permite marcar un subdirectorio como raíz de origen manualmente.

  • No detectar Esta opción le permite omitir el proceso de detección.

5

Tome un vistazo a la meta <add-source> acumulación (ver un ejemplo here)

Cita:

<plugin> 
<groupId>org.codehaus.mojo</groupId> 
<artifactId>build-helper-maven-plugin</artifactId> 
<version>1.4</version> 
<executions> 
    <execution> 
    <id>add-wsdl-source</id> 
    <phase>generate-sources</phase> 
    <goals> 
    <goal>add-source</goal> 
    </goals> 
    <configuration> 
    <sources> 
    <source>${basedir}/src-generated/src</source> 
    </sources> 
    </configuration> 
    <!-- [...] --> 
    </execution> 
</executions> 
</plugin> 
+3

esto genera las fuentes fuera de la carpeta de destino y puedo construir el proyecto. Desafortunadamente, Idea aún necesita una definición manual de esta carpeta adicional, por lo tanto, mi problema persiste. – bert

0

Se podría definir el directorio de origen (externo) como la dependencia a su módulo. Project Structure -> Modules -> Depenencies. Ahí tienes que agregar una nueva dependencia .

+0

gracias. La idea mantiene este cambio después de la recarga de pom. Los archivos Java son reconocidos como tales. Desafortunadamente, Idea no resuelve las referencias de clase a los archivos en dicho directorio. Extraño, voy a investigar más adelante – bert

Cuestiones relacionadas