¿Eclipse puede actualizar los recursos automáticamente?


161

Eclipse (3.4.2 con PyDev) trata los recursos fuera de sincronización (archivos que han sido editados fuera del IDE) de manera diferente a otros IDE que he usado, donde solo los recursos con editores abiertos se consideran fuera de sincronización . En Eclipse, cualquier recurso puede estar fuera de sincronización.

Esto significa que cuando realizo una búsqueda después de que cualquier archivo haya cambiado fuera de Eclipse, aparece un cuadro de diálogo de error que me dice que los archivos no están sincronizados, incluso si no tienen editores abiertos. Por lo que puedo decir, no hay un comando de actualización global, por lo que me veo obligado a leer los nombres de los proyectos (tengo varios proyectos) en el cuadro de diálogo de error y hacer clic con el botón derecho + actualizar para cada uno de ellos.

He revisado la Refresh Automaticallyconfiguración Settings > General > Workspace, pero esto no tiene ningún efecto. ¿Hay alguna forma de hacer que Eclipse siempre cargue recursos no activos del disco?


La respuesta actualizada para Eclipse 3.7+ está en la segunda respuesta.
Paul Verest

Incluso puede sincronizar con archivos remotos utilizando el explorador de sistemas remotos (RSE)
Christophe Roussy


@ Boris, esta pregunta se hizo varios años antes. El otro debe marcarse como un duplicado de este .
Glenn Slayden

Respuestas:


199

Este problema se solucionará en Eclipse 3.7 (Indigo). Si bien " Actualizar automáticamente " finalmente vuelve a sincronizar los recursos, el enlace de actualización solo existe para Windows, por lo que en Linux y Mac OS tiene que sondear el sistema de archivos periódicamente.

A partir de 3.7 hay una nueva preferencia Settings > General > Workspace > Refresh On Access(también conocida como Lightweight Refresh). Esta preferencia hace que Eclipse actualice automáticamente los recursos cuando descubre que están 'fuera de sincronización'. Al abrir, leer o buscar archivos, evitará errores de sincronización.

Ver también: https://bugs.eclipse.org/303517


61
Alucina la mente que esta es una opción . Nunca he actualizado mis archivos fuera de sincronización.
Christoffer Hammarström

18
:( Luché mucho para que no fuera una opción. Tienes razón, es una locura.
James Blackburn

66
Y si desea que esta opción sea la predeterminada en Eclipse 3.8 / 4.2, vote aquí: bugs.eclipse.org/340977
James Blackburn

55
Aunque uso IntelliJ IDEA. Nunca tengo que preocuparme por guardar archivos, porque se guardan automáticamente. Simplemente funciona Si un archivo cambia en el disco, cambia en el IDE. Cuando hay un conflicto, le advierte y le permite diferenciarse y fusionarse. Si lo peor llega a ser peor, tiene Historial local, por lo que siempre puede volver a hacerlo hace unos minutos.
Christoffer Hammarström

1
@ ChristofferHammarström: Eclipse también tiene un historial local: haga clic con el botón derecho en el editor de archivos> Comparar con> Historial local.
ccpizza

28

Creo que si hace clic en el nodo del proyecto en el Explorador de proyectos y presiona F5 o hace clic derecho y selecciona Actualizar, se actualizarán todos los recursos para ese proyecto. Además, si hace CTRL + clic en varios proyectos, debería poder actualizar varios proyectos al mismo tiempo.

Un solo clic en un proyecto, un CTRL + A para seleccionar todo y un F5 debería hacer exactamente lo que necesita: actualizar todo.

Tendré que probar esto cuando tenga la oportunidad, pero creo que así es como superé problemas similares en el pasado.


Me di cuenta de que esta respuesta rutinariamente se está desestimando. Me gustaría señalar que la pregunta se refiere a una versión específica de Eclipse: 3.4.2. En realidad, no había un método automático para actualizar los recursos fuera de sincronización hasta la versión 3.7 Indigo de Eclipse , como se menciona en la respuesta de James Blackburn . El método descrito en esta respuesta es el único método para lograr esto en la versión 3.4.2 (y cualquier otra versión anterior a 3.7 Indigo).


13
Tenga en cuenta que la actualización de varios proyectos seleccionados no funcionará si alguno de ellos está cerrado; primero debe anular la selección de los proyectos cerrados. Alternativamente, cuando no se seleccionan proyectos en las vistas Explorador de paquetes o Navegador, al presionar F5 se actualizarán todos los proyectos abiertos (ctrl-clic para anular la selección, hacer clic en el espacio vacío no funciona).
Tom Clift

71
Sin ofender a nadie, pero ¿por qué la respuesta aceptada a una pregunta sobre cómo hacer que Eclipse haga algo automáticamente es una descripción de cómo hacerlo manualmente?
Srekel

9
@Srekel Porque en el momento de la publicación, este era el único método para hacer lo que @DNS quiere hacer. Según la respuesta más reciente de @James Blackburn, hubo un problema que en realidad se informó y se corrigió mucho después de que esta pregunta se publicara originalmente. Con versiones más recientes de Eclipse, esta respuesta no es correcta. Sin embargo, la pregunta cita específicamente a Eclipse 3.4.2: este es el método para resolver el problema presentado en la pregunta.
Thomas Owens

21

El problema de falta de sincronización es común en el eclipse IDE, por lo que debe verificar esta opción de ventanas -> preferencia -> Espacio de trabajo -> actualizar usando enlaces o sondeos nativos.


66
Creo que esta es actualmente la respuesta correcta, al menos desde Eclipse Mars.
Henno Vermeulen

1
Esta casilla de verificación no me funciona en Eclipse 4.5 en Ubuntu 14.04. Después de un cambio externo del archivo, Eclipse no lo ve hasta que abro este archivo en Eclipse o hago la actualización. Por lo tanto, el navegador no ve la actualización del .cssarchivo, por ejemplo, si actualizo este archivo desde un editor externo mientras ejecuto la aplicación del servidor desde eclipse. Para solucionar esto, utilicé este complemento que hace que la casilla realmente funcione. Mira esta respuesta .
Ruslan Stelmachenko

Esta es una opción de trabajo para la versiónNeon.3 Release (4.6.3)
Kimchi Man

En Neon.3 en Mac, la opción está en Preferencias> General> Espacio de trabajo> Actualizar usando enlaces o sondeos nativos.
jmelvin

5

Hay una actualización global: no tenga nada (o todo) seleccionado en el explorador de paquetes y presione F5 (o haga clic derecho en el espacio vacío y seleccione Actualizar). Por supuesto, esto podría llevar bastante tiempo si tienes grandes proyectos.


No es automático, pero es muy efectivo (+1).
amado.por.Jesús

5

Eclipse Helios posee una función de actualización integrada en Preferencias> General> Espacio de trabajo. Está en el mismo lugar donde deshabilita las compilaciones automáticas. Seleccione actualizar automáticamente. Un complemento con la misma funcionalidad es el complemento Filesync de Andrei Loskutov. La dirección del sitio de actualización es: http://andrei.gmxhome.de/eclipse/ . Durante la instalación, seleccione complementos de Eclipse 3.5-3.7> FileSync.


4

Dado que Java 7 tiene una API para enlaces de sistema de archivos, uno podría pensar que la actualización podría manejarse mejor en Eclipse.

Editar: en realidad, hay un complemento que utiliza este mecanismo: https://github.com/psxpaul/EclipseJava7Refresher


Gracias por el complemento. Sin él, mi Eclipse en Ubuntu no ve los cambios externos de los archivos incluso cuando "Ventana-> Preferencias-> General-> Espacio de trabajo-> Actualizar usando enlaces nativos o sondeo" está habilitado.
Ruslan Stelmachenko

3

Tal vez debería agregar una solicitud de función en el sitio de eclipse:

https://bugs.eclipse.org/bugs/

Creo que sería una buena idea agregar una preferencia para actualizar automáticamente los recursos desactualizados.


3

Realmente falta una actualización global en Eclipse. El procedimiento anterior para seleccionar todos los proyectos y luego ejecutar la actualización (por ejemplo, F5) no funciona si ha cerrado proyectos incluidos en su selección. Esto significa que si tiene la mitad de sus muchos proyectos cerrados como yo, se encuentra presionando Ctrl manualmente a través de sus docenas de proyectos. Esto es bastante doloroso. Deseo que Eclipse simplemente ignore los proyectos cerrados.


3

La actualización global en realidad existe en Eclipse simple sin ningún complemento y sin seleccionar cada proyecto en su espacio de trabajo.

Básicamente, debe anular la selección de todo en su explorador de proyectos y presionar F5. Para hacerlo, presione Ctrl + clic en el recurso seleccionado en el explorador de proyectos y presione F5.


2

Sí, la actualización en el acceso está muy atrasada ... esas respuestas a estas preguntas y otras similares por lo general sugerían habilitar la actualización automática global, lo que podría llevar una era para grandes proyectos remotos. De hecho, hay quienes dirían que Actualizar en Access debería haber sido el comportamiento predeterminado original (<3.x) ...


2

Logré resolver esto creando una nueva configuración de ejecución de "herramienta externa" que ejecuta un archivo por lotes en blanco. En la configuración de ejecución, puede hacer que actualice el espacio de trabajo cuando se complete. Luego creé una macro usando Practically Macro que 1) ejecuta la última configuración de ejecución de herramienta externa (refrescando el espacio de trabajo), luego 2) ejecuta la última configuración de ejecución de depuración (ejecutando mi aplicación). Si desmarca "Asignar consola", la entrada de herramienta externa completada no aparecerá en la ventana de depuración.


1

Incluso si las soluciones propuestas por otros son correctas, tiene un complemento " Actualizar todo " para Eclipse. Simplemente agregue la página Actualizar a su lista de sitios de actualización de Eclipse para instalarla en su IDE.


2
Recibo un 404 cuando hago clic en estos enlaces. ¿Sigue vivo el proyecto?
Eran Harel

1
De hecho, este proyecto parece estar muerto :(
Romain Linsolas

1

Para iniciar hay una opción para actualizar automáticamente los archivos en

Window -> Preferences -> General -> Startup and Shutdown -> Refresh workspace on startup

Haga clic para tener un comienzo "nuevo" en eclipse. :)

Versión: Eclipse 4.12

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.