Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Antecedentes
• La creación de proyectos complejos usando
Java se ha tornado caótica en la medida que
los procesos de:
– Control de versiones
– Publicación (i.e. deployment)
– Portación de código ejecutable
• • Se han vuelto distribuidos
2
Ensamblado de proyectos
• Mecanizar la especificación de los actores
dentro del proceso de desarrollo de software
complejo en Java:
– Módulos de código
– Servidores y otros sistemas de apoyo
– Recursos compartidos
3
Uso de ambientes integrados
• Diversas alternativas que compiten por
público en el mercado de desarrollo:
– NetBeans
– Eclipse
– JBuilder
4
Problemática
• A medida que los sistemas de información se
han hecho mas complejos, los desarrolladores
han recurrido a la automatización de las
labores requeridas para su definición,
construcción, ensamblado, pruebas y entrega
5
La cultura “make”
• Originada en los laboratorios en los que UNIX
fue concebido
• make es una utilería del sistema operativo,
usada para dirigir la compilación y link-edición
de partes del mismo sistema operativo, o bien
de aplicaciones instaladas por demanda
6
Uso de make
$ ls
makefile foo.c
$ make <cr>
7
make y makefiles
• El archivo makefile se compone de
– Archivos
– Metas
• Las metas pueden tener dependencias entre si
8
Estructura de los makefiles
xerces.class
jar –cvf $@ $<
%.class: %.java
javac $<
9
Fortalezas de make
• Cuando el sistema operativo provee tareas
relacionadas con archivos y con otras
herramientas nativas:
– Utilerías como mkdir, mov, cat, file, sed
– Compiladores como cc, cpp, awk
• Por eso make opera bien en UNIX
10
Debilidades de make
• Cuando hace falta realizar tareas sobre
aplicaciones complejas:
– Emitir comandos SQL a motores de BD
– Arrancar, configurar o apagar servidores de
aplicación
– Realizar conexiones a servicios, servidores u otras
aplicaciones usando telnet, ftp, etc.
11
Introducción a ANT
• La cultura “another neat tool” (ANT)
• Moderna herramienta que permite controlar
el proceso de creación de sistemas de
información en Java
– Derivada de las ideas introducidas en la cultura
“make”
12
Características básicas de ANT
• Utiliza sintaxis simple basada en XML para la
definición de metas y acciones
• Opera en multi-plataformas en las que exista
un JRE disponible
• Es rápido, porque ejecuta tareas dentro de su
propia JVM
• Se le puede extender fácilmente usando J2SE
13
Características avanzadas de ANT
• Se intregra fácilmente con herramientas
externas (e.g. JUnit para pruebas y validación)
• Provee soporte para el desarrollo en JEE y JME
• Provee mecanismos para automatizar labores
de instalación, configuración y comunicación
(e.g. telnet, SQL, ftp, etc)
14
ANT y eXtreme Programming
• La idea detrás de eXtreme Programming (XP)
es que el costo de introducir un cambio en el
desarrollo sea igual en cualquier parte del
proyecto
• Asegurándose que el proyecto siempre sea
mantenido en un estado que esté listo para
producción
15
ANT y eXtreme Programming
• Una de las premisas de XP es la agilidad a
través de pruebas eficientes y exhaustivas
• La calidad en el desarrollo a través de la
automatización de las pruebas al sistema
16
ANT y eXtreme Programming
• Para lograr esta calidad, se requiere de
mecanizar:
– Pruebas a módulos en producción
– La calendarización de dichas pruebas
– Logrando así la integración durante el proceso de
desarrollo
17
Formato seguido por ANT
• ANT utiliza archivos XML denominados “build
files”
– Un archivo build contiene un proyecto
– Proyectos grandes pueden encadenar
subproyectos, cada uno con su propio “build”
18
Formato seguido por ANT
• Cada proyecto contiene múltiples metas
• Las metas pueden ser dependientes de otras
metas
• Cada meta contiene tareas
19
Formato seguido por ANT
• La sintaxis de una tarea es declarativa
• Nuevas tareas pueden ser agregadas con
facilidad utilizando programación en Java
20
Estructura de un proyecto
inicia:target
mkdir:tarea
mkdir:tarea
compila:target
javac:tarea
documenta:target
javadoc:tarea
publica:target
jar:tarea
ftp:tarea
21
Estructura de un proyecto
inicia:target
mkdir:tarea
mkdir:tarea
Contención
compila:target
de tareas
javac:tarea
(i.e. tareas,
sub-tareas) documenta:target
javadoc:tarea
publica:target
jar:tarea
ftp:tarea
22
Estructura de un proyecto
documenta:target
javadoc:tarea
publica:target
jar:tarea
ftp:tarea
23
Estructura de un proyecto
publica:target
jar:tarea
ftp:tarea
24
Estructura de un proyecto
<? xml version=“1.0” ?>
<project inicia:target
name=“miProyecto” mkdir:tarea
default=“publica” >
mkdir:tarea
<target name=“inicia” >
<mkdir dir=“./classes”> compila:target
<mkdir dir=“./docs”> javac:tarea
</target>
documenta:target
<target name=“compila”
depends=“inicia” > javadoc:tarea
inicia:target
mkdir:tarea
mkdir:tarea
<target name=“publica” compila:target
depends=“compila, documenta” >
javac:tarea
<jar destfile=“./dist/proyecto.jar”
basedir=“./classes” /> documenta:target
<ftp server=“${elServidor}” javadoc:tarea
userid=“${elUsuario}”
password=“${santoysenia}”> publica:target
<fileset dir=“./dist” /> jar:tarea
</ftp>
ftp:tarea
</target>
27
Obtención de ANT
28
29
30
31
Obtención de ANT
32
Configuración de ANT
• Dos pasos:
– Agregar entrada la
variable de
ambiente PATH
– Agregar variable
de ambiente
ANT_HOME
Configuración de ANT
34
Configuración de ANT
35
Primer proyecto con ANT
• El proyecto consiste en lo siguiente:
– Compilación de una aplicación en Java, colocada
en una carpeta especial para archivos fuente
– Almacenamiento de los archivos CLASS resultantes
en una carpeta especial
36
Primer proyecto
37
Primer proyecto ejecución
38
Primer proyecto ejecución
39
Primer proyecto ejecución
40
Primer proyecto ejecución
41
Primer proyecto ejecución
42
Primer proyecto ejecución
43
Primer proyecto directorios
44
Primer proyecto ejecución
45
• Cuando hay errores de sintaxis en el archivo
“build.xml”, éstos son reportados como sigue:
46
Actualizando dependencias
(opcional)
• La intrucción para descargar la biblioteca de
dependencias de las tareas ANT
47
Actualizando dependencias
(opcional)
48
Actualizando dependencias
(opcional)
49