2010-11-08 10 views
13

Uso Apache Thrift para generar código en target/generated-sources.maven no puede agregar archivos en las fuentes generadas para la fase de compilación

El compilador Thrift produce un directorio llamado gen-java que contiene todo el código de Java. Cuando ejecuto mvn compile, el código se genera correctamente en target/generated-source/gen-java, pero en la fase de compilación, se queja de que no puede encontrar las clases definidas en gen-java.

Según entiendo, Maven 2 agrega automáticamente las fuentes generadas, ¿verdad?

¿Y si mi código de prueba también depende del generated-sources, tengo que especificar manualmente el compilador?

+0

posible duplicado de [¿Por qué Maven se salta las ejecuciones de generación de fuentes personalizadas?] (Http://stackoverflow.com/questions/18721684/why-is-maven-skipping-over-my-custom-generate-sources -executions) – ArtB

+0

[¿Por qué Maven se salta las ejecuciones de generación de fuentes personalizadas?] (http://stackoverflow.com/q/18721684/1523648) se trata de un error de configuración del plugin antrun, esta pregunta no lo es. – oberlies

Respuesta

16

Según entiendo, maven 2 agrega fuentes generadas automáticamente, ¿verdad?

nada automático, plugins que generan código fuente que suelen manejar mediante la adición de su directorio de salida (algo así como target/generated-sources/<tool> por convención) como directorio de origen para el POM para que se incluirá más adelante durante la fase de compilación.

Algunos complementos menos implementados no hacen eso por usted y usted tiene que agregar el directorio usted mismo, por ejemplo, usando el Build Helper Maven Plugin.

Y como no proporcionó ningún fragmento de POM, ningún enlace, no puedo decir nada más.

¿Y si mi código de prueba también depende de las fuentes generadas, tengo que especificar manualmente el compilador?

Como dije, las fuentes generadas generalmente se agregan como directorio de origen y se compilan, por lo que están disponibles en el classpath de prueba sin tener que hacer nada.

+1

_plugins que generan el código fuente normalmente manejan eso agregando su directorio de salida como directorio fuente al POM_ ¿Tendría algún ejemplo de tal configuración? Estoy intentando crear un complemento no tan "mal implementado" que genere código pero no puedo encontrar la mejor manera de incluir el directorio de salida sin tener que configurarlo en el lado del "cliente". –

+0

@ RémiM Quizás [esta respuesta] (http://stackoverflow.com/a/19682602/254477) ayuda? – ArtB

+1

@Pascal ¿Qué pasa con '/ target/generated-sources /' en sí mismo, ¿necesita agregarse también a la ruta de compilación? – ArtB

Cuestiones relacionadas