2011-10-06 17 views
37

¿Cuál es el propósito de crear automáticamente opción en Eclipse (Project->Build Automatically)? El mío siempre será verificado. Pero cuando tengo algunos cambios en el código de Java, todavía tengo que hacer una compilación completa. Me dijeron que siempre debería verificarse. No veo ningún beneficio al hacerlo. Por favor, algún cuerpo explique.propósito de la opción "Crear automáticamente" en Eclipse

Respuesta

27

Sí, aún tiene que hacer una compilación, pero se realiza automáticamente al guardar (no una compilación externa como una compilación Ant, sino la compilación "interna"). Si no desea construir en guardar, debe desmarcar la casilla. Tenerlo construir automáticamente hace que algunas personas se pongan nerviosas, creo.

+0

¿Qué es lo que está construyendo guardando? ¿Cómo es esa compilación diferente de ANT compilación – pushya

+3

@pushya: Normalmente, una compilación Ant podría ejecutar automáticamente las pruebas o compilarse en un área separada lista para la implementación, podría compilar archivos jar, podría limpiar antes de cada construcción. La compilación interna generalmente solo creará los archivos de clase en el directorio de salida y copiará los recursos. En particular, esto es ideal para un cambio rápido cuando pruebas unitarias, etc., pero si quieres una compilación reproducible, desde cero, ejecutable en todas las pruebas, entonces querrás usar algo como Ant. –

+0

@JonSkeet: la configuración para compilar automáticamente tiene un impacto negativo en el rendimiento cuando se ejecutan servidores de aplicaciones web integrados que supervisan los cambios de código. Los cambios de código frecuentes en ese escenario provocan reinicios repetidos del servidor y un eventual bloqueo del IDE. – Perception

0

Si la compilación Automáticamente está marcada, el IDE compilará automáticamente su código Java siempre que modifique y guarde un archivo. Esto no significa que construirá y empaquetará completamente toda la solución como si fuera a implementarla, por ejemplo, si está trabajando en un proyecto web en un módulo WAR. Básicamente, simplemente compila tu código.

+1

La última frase no es verdadera, para proyectos WTP volverá a implementar su aplicación en el servidor. –

+0

Solo si lo tienes configurado para implementarse automáticamente también. – nitind

20

Eclipse tiene una buena respuesta on their website:

Tiene dos modos de funcionamiento: el modo de auto-construcción y el modo manual de construcción. De forma predeterminada, usted está en modo de auto-compilación y Eclipse se encarga de compilar los archivos fuente de forma automática. Las compilaciones se producen automáticamente en segundo plano cada vez que cambia archivos en el espacio de trabajo (por ejemplo, guardando un editor). La compilación automática es conveniente porque significa que la vista de problemas, los binarios, etc. están actualizados en todo momento. La desventaja es que, en espacios de trabajo grandes, las construcciones automáticas pueden consumir mucho tiempo si está cambiando archivos en proyectos con muchos proyectos dependientes en sentido descendente.

Si la construcción automática lleva demasiado tiempo y está interfiriendo con el desarrollo en curso, se puede desactivar. Una vez en el modo de compilación manual, el usuario tiene el control completo sobre cuándo se producen y qué se construye. Project> Build All (Ctrl + B) se puede invocar en cualquier momento para desencadenar lo que auto-build estaba haciendo automáticamente. Esto le permite construir un conjunto más amplio de cambios antes de invocar una acumulación (Eclipse recuerda qué archivos han cambiado de modo que no tiene que hacer más trabajo de lo necesario cuando usted pide una acumulación.

Tenga en cuenta que cuando dicen "el modo de auto-construcción" que significa si marcó "construir de forma automática", cuando dicen "el modo manual de construcción", quieren decir que no tiene "construir automáticamente" marcada.

+0

"Las compilaciones se producen automáticamente en el fondo cada vez que cambia los archivos en el espacio de trabajo (por ejemplo, guardando un editor)." -claro y simple – luigi7up

1

NOTA
Para C/C++ usuarios se le dice (fromhelp.eclipse.org):

De forma predeterminada, el entorno de trabajo Eclipse está configurado para crear proyectos automáticamente. Sin embargo, para el desarrollo de C/C++ debe desactivar esta opción, de lo contrario, todo su proyecto se reconstruirá cuando, por ejemplo, guarde un cambio en su archivo MAKE o en los archivos fuente. Haga clic en Proyecto> Crear automáticamente y asegúrese de que no haya ninguna marca de verificación junto a la opción de menú Generar automáticamente.

Proyecto
1

- Desactivar autobuild opción no siempre significa autobuild está apagado. Por ejemplo, el complemento de automatización de prueba "Makegood" activará la creación automática cuando Preferencias - Ejecutar/Depurar - lanzar - (Opción general) Crear antes de iniciar está activado. Así que apáguelo si es necesaria una compilación manual.

1

Una diferencia más es:
La mayoría de las veces, mientras trabajo en JSP me ayuda cuando comprobo "Construir automáticamente". Selecciona automáticamente los cambios en JSPs.
Pero si realiza cambios en las clases/XML de Java, necesita una compilación manual. Como uso el servidor de resina que se ejecuta fuera del eclipse a través del símbolo del sistema, prefiero verificar la opción.
Cuando configuro mi servidor en eclipse, lo apago y uso Publicar en el servidor.

Esta es la forma en que uso y la respuesta se basa en mi experiencia.

1

Una cosa que la gente no mencionó aquí (y me tomó un tiempo para mí resolver esto también) es que la construcción de eclipse (ya sea automática o manual) básicamente seguiría lo que ha delineado en el proyecto "Java Build Ruta "pestaña de origen. Por lo tanto, cuando se cubre un archivo en esa pestaña fuente de compilación, cuando se cambia el archivo, se copia/compila en la carpeta de salida que se especificó para ese directorio/archivo.

Cuestiones relacionadas