En este post explicaré la forma mas rápida de instalar
un entorno de desarrollo de aplicaciones J2EE muy básico
usando Linux, Java, Maven y Tomcat.
Linux - Ubuntu
Escogí Ubuntu por las siguientes razones:
- Es una distribución estable basada en Debian
- Su documentación es excelente.
- Tiene buen soporte en su foro.
- Su herramienta apt.
- Tiene buen soporte del hardware en las computadoras donde lo he instalado.
- Si es que se utiliza como Desktop, los efectos del Compiz son muy buenos.
No ahondaré en detalles sobre la instalación de Ubuntu
porque además de que es muy sencilla, hay muchos tutoriales por
ahí que tratan este tema.
Todos los pasos del resto de la guía serán realizados en la consola,
así que pueden instalar la versión
Desktop
, Server
o incluso una versión instalada en una máquina virtual sobre su amado Windows, da igual.
El unico detalle a considerar antes de trabajar con la instalación de Ubuntu es que, en caso de haber instalado la
versión Server será necesario asegurarnos que el servidor SSH se haya instalado; esto para poder
acceder al servidor remotamente. En caso de no haber sido instalado desde el wizard se puede instalar con la
siguiente instrucción:
user@linuxbox:~$ sudo apt-get install sshd
Java - Sun JDK6
Aunque es posible instalar Java usando apt yo recomiendo hacerlo manualmente ya que se tiene más
control sobre la instalación además de que es probable que
alguna vez tengamos que instalar varios JDKs o JREs y de este modo es mas fácil switchear
de una versión a otra.
Es necesario descargar una copia del JDK del sitio de Sun Microsystems.
El archivo que utilizo como ejemplo en aqui es un binario (terminación .bin)
Si se utiliza una versión de Linux sin interfase gráfica se puede copiar al servidor usando SCP o algo similar.
En caso de no tener un cliente SCP disponible (gFTP es mi recomendación) se puede copiar un archivo al servidor
usando la siguiente instrucción de la línea de comandos:
user@linuxbox:~$ scp /ruta/del/archivo usuario@servidor:/carpeta/destino
Para descomprimir, solamente hay que asegurarse que se tengan permisos de ejecución en el archivo
y ejectutar el bin. Esto solamente creará una carpeta con los archivos necesarios en el mismo folder.
user@linuxbox:~$ chmod 755 jdk-6u11-linux-x64.bin
user@linuxbox:~$ ./jdk-6u11-linux-x64.bin
Sun Microsystems, Inc. Binary Code License Agreement
[puedes saltarte la licencia apretando 'q']
Do you agree to the above license terms? [yes or no]
yes
Unpacking...
Checksumming...
.
.
.
Done.
user@linuxbox:~$
Yo generalmente creo un folder /usr/java en donde guardo todos los archivos relacionados con Java
(como diferentes JDKs, JREs, Application Servers, Maven, Ant, etc.).
Escribir el folder /usr
requiere ser un super usuario asi que tenemos que usar sudo
para crear el directorio. Después de esto lo único que hay que hacer
es mover el folder con los archivos del JDK a esta nueva ubicación.
user@linuxbox:~$ sudo mkdir /usr/java
[sudo] password for linuxbox: [el password con que el que ingresaste]
user@linuxbox:~$ sudo mv jdk1.6.0_11 /usr/java
Finalmente es necesario agregar la variable JAVA_HOME en el archivo .profile en el home
del usuario actual y agregar su carpeta bin al PATH
user@linuxbox:~$ vi ~/.profile
.
.
.
JAVA_HOME=/usr/java/jdk1.6.0_11
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
user@linuxbox:~$ source ~/.profile
Para probar la instalación solamente hay que introducir:
user@linuxbox:~$ java -version
java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)
Maven 2
Maven es un robusto gestor de dependencias distribuido con varios plugins (incluso el compilador
es un plugin) que facilitan la tarea de gestionar, construir y hacer el deploy de proyectos J2EE.
Maven basa las reglas para construir un proyecto
en un archivo XML llamado POM (Project Object Model) el cual contiene los distintos plugins y su
configuración a utilizar durante el ciclo de vida de la construcción de un proyecto.
Muchas personas lo encuentran dificil de utilizar ya que se debe de tener una estructura específica
en los archivos fuente; a pesar de que esto tiene algunos contras tiene la gran ventaja
de que la estandarización tiene como consecuencia la agilización del mantenimiento
del proyecto.
Proximamente escribiré una entrada sobre el uso de Maven, mientras tanto me remitiré
a la instalación.
Al igual que Java, es posible instalar Maven utilizando el gestor de paquetes apt,
sin embargo, prefiero el método manual ya que asi tenemos mas control sobre la instalación
(además de que en este caso es aún más sencillo).
Para descargar Maven basta con dirigirnos a maven.apache.org y escoger algún mirror,
el tipo de archivo que uso en este tutorial es un tar.gz. Después de obtener el archivo, es necesario descomprimirlo.
Con esto obtendremos una carpeta llamada apache-maven-2.0.10, ahora solamente tenemos que copiar el folder a
/usr/java (siguiendo la recomendación de poner todos los archivos de Java en un solo lugar).
Aqui presento los comandos para descargar, descomprimir y colocar la version de Maven 2.0.10
user@linuxbox:~$ wget http://archive.apache.org/dist/maven/binaries/apache-maven-2.0.10-bin.tar.gz
user@linuxbox:~$ tar -xvfz apache-maven-2.0.10-bin.tar.gz
user@linuxbox:~$ sudo cp apache-maven-2.0.10 /usr/java
Finalmente debemos editar nuestro archivo .profile para 'dar de alta' la variable de entorno M2_HOME apuntando al home de Maven
(esta es opcional pero hace más claro el script) y agregar al PATH la ubicación $M2_HOME/bin.
user@linuxbox:~$ vi ~/.profile
.
.
.
M2_HOME=/usr/java/apache-maven-2.0.10
export M2_HOME
PATH=$PATH:$M2_HOME/bin
export PATH
user@linuxbox:~$ source ~/.profile
Para probar la instalación únicamente usamos mvn con el parámetro -version
user@linuxbox:~$ mvn -version
Maven version: 2.0.9
Java version: 1.6.0_11
OS name: "linux" version: "2.6.27-14-generic" arch: "i386" Family: "unix"
Intermedio
Hasta ahora debemos de tener una estación de trabajo preparada para poder programar y compilar proyectos Java,
necesitamos únicamente un application server para poder hacer deploy de una aplicación Web.
Con las herramientas que tenemos hasta ahorita podemos hacer el experimento de un 'Hello World' (en Web)
usando solamente Maven y su plugin archetype.
user@linuxbox:~$ mvn archetype:create \
-DgroupId=com.hartoingenio \
-DartifactId=web-artifact \
-DarchetypeArtifactId=maven-archetype-webapp
.
.
.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 33 seconds
[INFO] Finished at: Tue May 19 16:41:13 PDT 2009
[INFO] Final Memory: 8M/14M
[INFO] ------------------------------------------------------------------------
user@linuxbox:~$ cd web-artifact/
user@linuxbox:~$ mvn clean war:exploded tomcat:run
.
.
.
May 19, 2009 4:41:17 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Sólo pon en tu navegador el siguiente URL (en caso de que el proyecto no haya sido creado en el mismo equipo,
reemplaza localhost por el nombre o dirección IP del servidor).
http://localhost:8080/web-artifact/
Esto que acabamos de hacer no instala Tomcat en el equipo, simplemente Maven descarga los JARs de Tomcat del repositorio y echa a andar una versión slim.
Apache Tomcat 6.0.18
La instalación de Tomcat muy sencilla, muy parecido a lo que hicimos con Maven. Para descargar Tomcat basta con dirigirnos a tomcat.apache.org y escoger algún mirror,
el tipo de archivo que uso en este tutorial es un tar.gz. Después de obtener el archivo, es necesario descomprimirlo.
Con esto obtendremos una carpeta llamada apache-tomcat-6.0.18, ahora solamente tenemos que copiar el folder a
/usr/java (siguiendo la recomendación de poner todos los archivos de Java en un solo lugar).
user@linuxbox:~$ wget http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.tar.gz
user@linuxbox:~$ tar -xvfz apache-tomcat-6.0.18.tar.gz
user@linuxbox:~$ sudo cp apache-tomcat-6.0.18 /usr/java
Finalmente debemos editar nuestro archivo .profile para 'dar de alta' la variable de entorno CATALINA_HOME apuntando al home de la instalación de Tomcat y agregar al PATH la ubicación $CATALINA_HOME/bin.
user@linuxbox:~$ vi ~/.profile
.
.
.
CATALINA_HOME=/usr/java/apache-tomcat-6.0.18
export CATALINA_HOME
PATH=$PATH:$CATALINA_HOME/bin
export PATH
user@linuxbox:~$ source ~/.profile
Para probar la instalación simplemente introducimos:
user@linuxbox:~$ catalina.sh run
.
.
.
INFO: Server startup in 961 ms
user@linuxbox:~$
Y checamos en:
Listo!