Hoy os traigo algo que acabo de aprender, después de mucho buscar por la red. Se trata de crear un proyecto en un sistema de fiecheros remoto, por tal de poder trabajar de manera idéntica a como si lo tuviéramos en nuestro propio pc.
Mi necesidad era que, para desarrollar en Raspberry Pi, lo mejor es hacerlo sobre la propia plataforma. La idea incluso os puede confundir un poco, porque el proyecto es en Nodejs, y como todos sabemos, es un lenguaje multiplataforma. Por lo tanto, podría editar y probar en local, y posteriormente, publicarlo a la Pi, pero ¿no creéis que es mas cómodo editar y publicar directamente sobre el servidor? Sobretodo cómodo, porque usando grunt podemos ver los cambios al instante, sin necesidad de tener que realizar deploys manualmente y esperar a que se publiquen los cambios.
La solución es bastante mas sencilla de lo que cabía esperar: usaremos un plugin que ya incluye las últimas versiones de Eclips, el Remote System Explorer (RSE). Su fecha de lanzamiento fue por allá en 2006, por lo que ya es un proyecto con solera, que seguramente nos va a funcionar muy bien. Este a su vez pertenece al Target Management Home.
Vamos a por ello.
Como os comentaba, yo he usado una Raspberry Pi para mi servidor / plataforma de desarrollo, pero podréis usar cualquier otro sistema, Linux o Windows, según vuestras necesidades. Paralelamente, mi Eclipse es un Spring STS, pero podéis usar cualquier otra versión.
Lo primero que haremos es buscar la perspectiva del RSE, y abrirla: Window > Open Perspective > Other… > Remote System Explorer
Una vez ya en la perspectiva del RSE, pulsaremos sobre el icono que vemos en a parte superior que es una tubería con un símbolo +. Esto es para crear una nueva conexión remota. Se nos abrirá una pantalla semejante a la que vemos a continuación, desde la que podremos seleccionar el sistema remoto al que nos conectaremos. En nuestro caso, Linux:
Seleccionamos Linux, pulsamos Next y a continuación se nos solicita la información del sistema remoto.
Deberemos indicar:
- Parent profile: aquí aparecerá el nombre de nuestro host o PC
- Host name: nombre de host o ip del sistema remoto
- Connection name: un nombre para nuestra conexión
- Description: una posible descripción
En el ejemplo, mi Raspberry Pi tiene la ip 192.168.1.2. Clickamos en Next… A continuación nos aparece una nueva ventana en la que se nos solicita que indiquemos el sistema de comunicación entre nuestro host y el remoto. Yo he seleccionado SSH (ssh.files), pero podéis utilizar cualquiera de los que se ofrecen. En cualquier caso, sea cual sea la opción elegida, tened en cuenta que el servidor o sistema remoto tiene activado el servicio, por ejemplo, el SSH…
Después de esta pantalla, podéis dar Next… hasta finalizar el proceso. Iremos con las opciones por defecto en el resto de preguntas. También podéis darle a Finish.
Tras este proceso ya tendremos disponible en nuestra vista de sistemas remotos la conexión que acabamos de crear. Como podéis ver, se llama raspberrypi, que es el nombre que le hemos dado en el momento de la creación:
Ahora ya podemos proceder a desplegar el sistema de ficheros remoto. Para ello, accedemos a la conexión raspberrypi que acabamos de crear, y desplegamos del árbol raspberrypi > Sftp Files > My Home, que nos llevará directamente al home del usuario que utilicemos en la pantalla de credenciales que se nos abrirá al mismo tiempo (es el directorio por defecto al conectarse un usuario por ssh o sftp):
Usaré el usuario raspberry/pi por defecto. Por comodidad, marcaremos las opciones Save user ID y Save password, para que no tengamos que ponerlas cada vez. Clickamos OK, y esto nos llevará al home del usuario pi mediante el explorador de sistemas remotos:
Como podéis comprobar, al desplegar el árbol My Home, nos muestra dos directorios, que son los que existen en el home del usuario pi. Uno de ellos se llama workspace y dentro, otro llamado homepi. Estos dos directorios los he creado yo para albergar en ellos mi proyecto, que tal y como vemos, se llamará homepi.
Ahora ya solo nos queda importar el directorio de trabajo para nuestro proyecto. Para ello, lo que haremos es clicar botón derecho sobre el directorio deseado (homepi) y en el menú emergente, seleccionaremos Import to project… si lo que queremos es importar un proyecto de Eclipse ya existente, o bien Create remote project, para crear un nuevo proyecto dentro del mismo. Yo seleccionaré esta última opción, ya que aún no disponía de ningún proyecto creado…
Tras esto, ya tendremos nuestro proyecto importado en el workspace de Eclipse. Su nombre es hostName_projectName, por lo que en mi caso, se me habrá creado un proyecto, vacío, con el nombre raspberrypi_homepi.
A partir de aquí ya podéis seguir trabajando con normalidad en vuestro proyecto.
A tener en cuenta, si el proyecto ya existe en el sistema de ficheros remoto, al importarlo tendrá la misma etsructura que el original, por lo que si es un proyecto con facetas especiales, es muy importante tenerlo creado antes.
Cualquier duda o comentario, ya sabéis!
Suerte, y espero que os haya parecido interesante.
Jordi