Instalación y Configuración de Software
- Un Método Simplificado de Producción

Al llegar a este punto hemos comprobado que tanto nuestro JDK, nuestro servidor Tomcat y nuestras configuraciones respectivas están funcionando correctamente.

Sin embargo, como puede haberse visto, es una tarea tediosa el estar copiando las clases compiladas a sus directorios de producción, además de ser un proceso sujeto a errores. Vamos a ver ahora varias de las opciones que existen para simplificar el proceso desarrollo -> despliegue.


1. Copiar a un Acceso Directo

La primer opción consiste en crear un acceso directo al directorio dir_app/WEB-INF/classes. Para ello se abre el directorio dir_app/WEB-INF, se hace click con el botón derecho de ratón sobre el directorio classes, y se elige Copiar. Se va al directorio de desarrollo, se hace click con el botón derecho del ratón sobre la ventana y se elige Pegar acceso directo.

Ahora, cuando se compile un servlet que no use paquetes, simplemente se arrastran las clases al acceso directo. Y cuando se desarrollen paquetes, se usa el botón derecho para arrastrar el directorio completo (ej. el directorio pkgs) al acceso directo, se suelta y se elige Copiar aquí.

Este método tiene la ventaja de ser simple. Por otro lado, si se utilizan varios servidores, tiene la desventaja de que se requiere estar haciendo la copia varias veces para cada uno. Otra desventaja importante es que se copia al servidor tanto la clase como el código fuente, mientras que sólo se requiere que se copien las clases. Para un uso personal, ésto puede no importar, pero en ambientes reales de producción, uno ciertamente no desea que el código fuente esté ahí.

2. Usar la Opción -d del Javac

Por omisión, el compilador Java (javac) coloca los archivos .class en el mismo directorio en el que se encuentra el código fuente. Sin embargo, javac tiene una opción (-d) que permite definir una localización diferente para estos archivos. Uno simplemente requiere especificar el directorio raíz para las clases y javac automáticamente pone las clases en paquetes en subdirectorios que empaten con los nombres de los paquetes. Por ejemplo, uno puede compilar el servlet p032_Holas.java de la siguiente manera:

javac -d C:\Adt\Tomcat\webapps\curso_web\WEB-INF\classes p032_Holas.java

Evidentemente resulta más sencillo hacer un script (ej. servletc.bat) que simplemente reciba como parámetro el servlet a ser compilado: servletc Programa.java.

Una ventaja de este método es que no requiere el copiado manual de los archivos .class. Más aún, este mismo comando puede ser utilizado para clases en diferentes paquetes, ya que el javac automáticamente coloca las clases en los subdirectorios correctos (los que empaten con el nombre del paquete).

La desventaja principal radica que en este método aplica sólo para los archivos .class de Java; esto es, no funciona con archivos HTML y páginas JSP, y mucho menos con aplicaciones Web completas.

3. Utilizar un IDE

La mayor parte de los ambientes integrados de desarrollo (IDE's, tales como: IBM WebSphere Studio, Macromedia JRun Studio, Borland JBuilder, etc.), tienen opciones que permiten indicarle en donde colocar las clases de un proyecto. Algunos IDE's pueden colocar los archivos HTML y las páginas JSP e incluso las aplicaciones Web completas.

Una desventaja (aparte de la curva de aprendizaje requerida para comenzar a utilizar un IDE), es que es una técnica específica del IDE, y por lo tanto puede no ser portable entre diversos sistemas.

4. Utilizar Ant

Desarrollado por el Proyecto Jakarta, ant es una herramienta similar al make de Unix. Ant está escrito en Java (por lo cual es portable), y es tanto más fácil de usar, como más potente, que make.

La ventaja principal de este método está en su flexibilidad, ya que es lo suficientemente potente como para manejar todo: compilar código fuente Java, copiar archivos o producir archivos WAR. Su desventaja radica en la curva de aprendizaje requerida para usarlo.

Esta última opción será la que manejemos en nuestro curso para facilitar el proceso de despliegue de nuestra aplicación. La instalación y configuración la veremos más adelante.


Ayuda

Para más información sobre javac:

Para más información sobre Eclipse: