2011-06-30 9 views
5

Tengo un proyecto en Eclipse (Indigo pero similar en Helios) que tiene archivos en src/main/resources que se procesan para generar archivos fuente * .java en target/generated-sources/xyz. La configuración del proyecto tiene habilitada la opción "Crear automáticamente", por lo que cada vez que se editan y guardan estos archivos de recursos, se generan los archivos correspondientes *.java. He agregado target/generated-sources/xyz a los proyectos Build Paths. Todo esto funciona perfectamente.Eclipse "Build Automatically" no en cascada

El problema es que los cambios en los archivos *.java generados se reconstruyen de forma incoherente. Si tengo uno de esos archivos abiertos en el editor, nota que cambió y me pregunta si deseo volver a cargarlo. Recargar los archivos *.java es suficiente para que reconozca que ha cambiado y desencadenar una reconstrucción. Si no lo tengo abierto, entonces no recoge automáticamente los cambios.

¿Alguna idea sobre lo que puedo hacer para que Eclipse (Indigo preferiblemente) sepa que estos archivos generados se están actualizando? ¿O mejor aún dígale que controle esas carpetas directamente?

Gracias.

Respuesta

10

Intente configurar Eclipse para actualizar automáticamente. No estoy seguro acerca de Indigo, pero en Helios, está en Preferencias → General → Área de trabajo → Actualizar automáticamente.


Aquí está en Indigo:

screenshot

+0

¡Ya está! Eso parece haberlo hecho. En Indigo hay dos opciones ahora: "Actualizar usando ganchos nativos o sondeo" y: Actualizar en acceso ". Jugar con lo que es mejor, pero parece que una vez que se renueva, lo recoge y lo reconstruye. ¡Gracias! – mckamey

+0

De nada. Acabo de recordar que tengo una copia inactiva de Indigo. No estoy seguro de cuál de las nuevas opciones es mejor. No tengo idea de por qué Eclipse no se actualiza automáticamente. –

+1

Quizás porque alguien podría perder los cambios, supongo. A menudo estoy afuera. el IDE así que me gusta mantenerlo sincronizado. Para mí (en OS X) parece que "Refresh on access" funciona instantáneamente. El otro parece tener un ciclo de sondeo corto pero notable. ** Edit: ** scratch that. Simplemente estableciendo ambos. :) – mckamey

2

Asumo que haya añadido un "Programa" constructor basado en el proyecto que recopila/traduce los archivos en .java.

Si abre el constructor - a través de las propiedades del proyecto ->Builders ->Edit... generador - entonces puede abrir la pestaña Refresh - se a continuación.

Refresh tab of the Builder Dialog

Aquí se puede seleccionar el que los recursos para actualizar cuando se ejecuta esta versión en particular ... P. ej todos los recursos en target/generated-sources/xyz ...

+0

Gracias, eso es un buen consejo. En mi caso, en realidad es un proceso basado en maven que está configurado con m2e. Desearía que este tipo de acciones se pudieran especificar limpiamente en el 'pom.xml' entonces que cada desarrollador no tenía que configurar el IDE. – mckamey

Cuestiones relacionadas