Desencadenar Eclipse limpio a través de la línea de command o automáticamente a una hora especificada

De todos modos, ¿es posible obligar a un Eclipse en ejecución a limpiar y rebuild desde la command-line en Linux o desde el momento en que se dispara?

Tengo un espacio de trabajo con cientos de proyectos de Maven que deben limpiarse y rebuildse después de que un file cambie automáticamente. El cambio de file ocurre todas las noches y se desencadena por un cronjob que ejecuta svn update seguido de un mvn clean y un mvn install al final. Eclipse ve esos cambios de fuente y reconstruye automáticamente (ganchos nativos) para mantenerse actualizado. Pero debido a razones desconocidas, no se reconstruye por completo. Muchos errores y advertencias permanecen. Esos errores desaparecen solo si limpio todo el espacio de trabajo de Eclipse, que luego da como resultado una reconstrucción automática en Eclipse . Esta reconstrucción lleva mucho time (> 1 hora). No quiero pasar este time todos los días. Así que estoy buscando una forma automática de forzar una limpieza completa y la reconstrucción de mi espacio de trabajo de un eclipse corriendo durante la noche.

No puedo reiniciar el eclipse durante la noche.

Una idea es limpiar Eclipse desde afuera (¿pero cómo?) Para que note el cambio por sí mismo. Eclipse podría rebuildse automáticamente.

Por lo que yo sé, no hay una forma pnetworkingefinida de desencadenar esto desde el exterior. Por lo tanto, propondré una estrategia que pueda lograr lo que necesita. Esto toca muchos temas avanzados, así que solo voy a proporcionar algunos consejos para que comiences, porque traer todos los detalles será demasiado para este formatting. Probablemente sería un excelente artículo de blog aunque. Así que, aquí vamos:

  1. Escribe un plugin para tu Eclipse.
  2. Este complemento tiene que exponer un MXBean con una operación de limpieza y reconstrucción. Utilice la herramienta JDK jconsole para verificar la accesibilidad de la operación.
  3. Esa operación a su vez ejecuta los commands clean y full rebuild. Puede usar Eclipse Plug-in Spy para encontrar las contribuciones de command apropiadas y / o explorar el código fuente de Eclipse .
  4. Luego, necesita build un cliente JMX personalizado que invoca esa operación de MXBean desde el exterior. Esta es básicamente una versión simplificada de las capacidades JMX de jconsole y puede ser una simple aplicación de command-line de Java a la que llama su trabajo cron. Necesita conectarse a su instancia de Eclipse local e invocar la operación que definió anteriormente. Para encontrar la instancia correcta para conectarse, su complemento Eclipse podría escribir el puerto del server MXBean de la instancia en un file que su cliente JMX busca al inicio.

EDITAR: además de los commands limpiar y rebuild, querrá invocar una actualización completa del espacio de trabajo de antemano.