SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Herramientas java




-1-
                          UPM
Classpath
  Variable de entorno necesaria para
   encontrar bibliotecas de funciones (jar).


  Distinguir entre las múltiples instalaciones.


  Uso complementario:
      4  ariable JAVA_HOME
       V



-2-
                                                   UPM
Desarrollo java
  Necesidad de herramientas de desarrollo.
  Utilidades
      4  onstruir programas.
       C
      4  utomatizar pruebas.
       A
      4  acilidades de trazado.
       F


  Entornos integrados:
      4  esados: matar moscas a cañonazos.
       P
      4  aros:
       C
         •  Excepto netbeans: http://www.netbeans.org
         •  Gratis pero hace falta memoria (>= 128 Mb)

-3-
                                                         UPM
Herramientas
           proporcionadas
  Código de dominio publico de la mayor
   calidad:
      4  onstrucción de programas:
       C
        • ANT
      4  estión de trazas y LOGS:
       G
        • LOG4J

      4  ntorno : eclipse - netbeans
       E


-4-
                                           UPM
ANT




-5-
            UPM
¿Que es ANT ?
  Plataforma para la construcción de
   programas (equivalente a make y makefiles).
  Portable, totalmente escrito en java:
   Independiente de la plataforma.
  Mejora ciertas características de make:
   ficheros de configuración XML.
  Código abierto (parte del proyecto jakarta de
   apache).
  Posibilidad de realizar scripts sencillos
-6-
                                               UPM
Utilidad
  Independiente de la plataforma
      4 Solo requiere una JVM
      4 Independiente de maquina (windows, unix, mac). No
        importan path o retornos de carro.

  Fácil de utilizar
      4 Incluye facilidades típicas de construcción de programas.
      4 Disponibles tareas encontradas útiles por usuarios.
      4 Elimina ciertos detalles crípticos de make.

  Fácil de extender
      4 Crear una nueva tarea es tan sencillo como heredar una
        clase y añadir el comportamiento deseado.

  Estándar de facto en programas Java.
-7-
                                                               UPM
Estructura de un fichero ant
  Project
      4  na colección de objetivos de alto nivel.
       U
  Property
      4  na variable de ant: usado para configurar.
       U
  Target
      4  n conjunto de tareas a ejecutar para conseguir
       U
       un cierto objetivo.
  Task
      4  na unidad de ejecución (cada paso).
       U

-8-
                                                      UPM
Funcionamiento
  Existe un fichero con el proyecto en la raíz
   (build.xml).
  Cada fichero contiene uno o mas objetivos
   (target)
  Cada objetivo se ejecuta:
      4  or que el proyecto depende de el
       P
      4  e indica el nombre por línea de comandos.
       S
  Cada tarea se ejecuta (si es necesaria) una
   sola vez.
  Algunas tareas pueden ser condicionales.
-9-
                                                     UPM
Estructura típica de
                directorios
  project
         4 README files, build.xml, etc.
         4 classes
             •  ficheros. .class
         4 doc
             •  Documentación del proyecto
             •  api
                 –  Ficheros javadoc generados
         4 docroot
             •  Ficheros necesarios para aplicaciones web (HTML, JSP,
                XML, etc):
         4 lib
             •  Ficheros JAR con librerías necesarias para el proyecto.
         4 Src
             •  Código fuente del proyecto

- 10 -
                                                                          UPM
Revisión rápida de XML
  Comenzamos con la línea:
     <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
  Las etiquetas van entre < y > y finalizan con /
          <tag>body</tag> or <tag/>
  Las etiquetas distinguen mayúsculas y
   minúsculas (distinto de HTML).
  Las etiquetas pueden ser autocontenidas
          <tag attribute=quot;valuequot;/>
  Los valores y las strings tienen que ir entre
   comillas.
- 11 -
                                                   UPM
Etiqueta Project
         <project name=quot;MyProjectquot;
          default=quot;distquot; basedir=quot;.quot;>
          ...
         </project>
  Objetivo principal. Indica que tareas son
   obligatorias.
  Donde esta el código:
         4  so de paths relativos para evitar problemas.
          U

- 12 -
                                                           UPM
Etiqueta Target
         <target name=quot;distquot; depends=quot;initquot;
           description=quot;Makes a distributionquot;
           if=quot;code-presentquot; unless=quot;time-is-shortquot;>
          ...
         </target>
  Objetivo a alcanzar. Obligatorio el nombre (“name”)
   de la tarea.
  Puede depender de otras que han de completarse
   antes.
  El resto de campos son opcionales.

- 13 -
                                                     UPM
Algunas referencias a
               ficheros
  Pattern-sets
         <patternset id=quot;my.patternquot;>
             <include name=quot;**/*.javaquot;/>
             <exclude name=quot;**/*Test*quot;/>
         </patternset>
  File-sets
         <fileset dir=quot;./sourcequot;>
               <patternset refid=quot;my.pattern“/>
         </fileset>
- 14 -
                                             UPM
Un build.xml sencillo
         <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
         <project name=quot;Testquot; default=quot;distquot;
           basedir=quot;.quot;>
          <target name=quot;distquot;>
            <javac srcdir=quot;.quot;/>
          </target>
         </project>

  Mínimo fichero que compila todos los .java de un
   directorio recursivamente.
- 15 -
                                                      UPM
Tareas incorporadas
  Ant              Echo
  AntCall          Exec
  AntStructure     ExecOn
  Apply            Fail
  Available        Filter
  Chmod            FixCRLF
  Copy             GenKey
  Cvs              Get
  Delete           GUnzip
- 16 -
                               UPM
Tareas incorporadas (II)
  Gzip                Property
  Jar                 Replace
  Java                Rmic
  Javac               SignJar
  Javadoc             Sql
  Mail                Style
  Mkdir               Tar
  Move                Taskdef
  Patch               Touch
- 17 -
                                    UPM
Tareas incorporadas (III)
  Tstamp
  Unjar
  Untar
  Unwar
  Unzip
  Uptodate
  War
  Zip


- 18 -
                                     UPM
Tareas Opcionales
  ANTLR             JUnitReport
  Cab               Native2Ascii
  Depend            PropertyFile
  FTP               RenameExtensions
  JavaCC            Script
  Javah             Sound
  JJTree            Stylebook
  Jlink             Telnet
  JUnit             Test
- 19 -
                                         UPM
Instalación en Windows
  Verificar instalación de java.
  Poner variables:
           4  AVA_HOME a donde este instalado el JDK:
            J
              •  Como C:jdk1.4
           4  ñadir al CLASSPATH
            A
              •  Ant.jar y xerces.jar
           4  ñadir al PATH
            A
              •  %ANT_HOME%bin

  Verificar documentació:
         http://ant.apache.org/manual/install.html
- 20 -
                                                        UPM
Pantalla
  Indica las tareas que va ejecutando:

         4 Ejemplo:
         Searching for build.xml ...
         Buildfile: C:XMLProgLabsFrameworkbuild.xml
         prepare:
             [mkdir] Created dir: C:XMLProgLabsFrameworkclasses
         compile:
             [javac] Compiling 26 source files to C:XMLProgLabs
            Frameworkclasses
         war:
               [war] Building war: C:XMLProgLabsFrameworkshopping.war
         undeploy:
            [delete] Deleting directory C:Tomcatwebappsshopping
            [delete] Deleting: C:Tomcatwebappsshopping.war
         deploy:
              [copy] Copying 1 files to C:Tomcatwebapps
         BUILD SUCCESSFUL
         Total time: 5 seconds

- 21 -
                                                                      UPM
Recursos
  http://jakarta.apache.org/ant/
         4  agina principal de ant
          P
  http://jakarta.apache.org/ant/manual/
   index.html
         4  anual en línea de ANT (normalmente
          M
          suficiente editar uno existente).
  http://jakarta.apache.org/ant/resources.html
         4  rtículos, presentaciones y otros.
          A



- 22 -
                                                 UPM
LOG4J




- 23 -
                 UPM
Depurar / notificar con
                println

         public class HelloWorld
         {
             public static void main(String[] args)
             {
               System.out.println(“Hello world!”);
             }
         }


- 24 -
                                                      UPM
Complejidad de
               aplicaciones reales
           Aplicaciones multihilo y multiusuario.
           Puede ser un servidor sin “pantalla” y por lo
            tanto sin posibilidad de imprimir.
           Distintas instancias de objetos y servicios:
            mensajes mezclados en pantalla.
           Utilidad:
              4  epurar.
               D
              4  aber lo que esta pasando
               S
              4  ontrol de seguridad: control de ataques/
               C
               hackers.
- 25 -        4  edireccionable a fichero.
               R                                            UPM
Hello Log4j
import org.apache.log4j.*;
public class HelloLog4j
{
         private static Logger logger = Logger.getLogger
             (HelloLog4j.class); // estático para inicializar.
         // necesario añadir esta línea en cada clase.
    public static void main(String[] args)
    {
         BasicConfigurator.configure(); // configurar 1 vez en el programa
         logger.debug(“In the main methodquot;);
         logger.info(quot;What a beautiful day.quot;);
         logger.error(“This is an error message.”);
    }
}
- 26 -
                                                                    UPM
Salida por pantalla

0 [main] DEBUG HelloLog4j - In the main method
0 [main] INFO HelloLog4j - What a beautiful day.
10 [main] ERROR HelloLog4j - This is an error message.




- 27 -
                                                   UPM
org.apache.log4j.Level

     Orden:

          DEBUG < INFO < WARN < ERROR < FATAL


     Otros niveles:
         4  evel.ALL
          L
         4  evel.OFF
          L




- 28 -
                                                UPM
Algunos objetos
  java.util.logging Handlers
         StreamHandler
         ConsoleHandler
         FileHandler
         SocketHandler
         MemoryHandler
  java.util.logging Formatters
         SimpleFormatter
         XMLFormatter
  Posibilidad de configurar con fichero XML.
- 29 -
                                                UPM
Java logger
  Añadido en jdk 1.5


  No hay necesidad de instalar nada.


  java.util.logging.Logger
  Uso opcional de uno u otro: Decisión de
   diseño.


- 30 -
                                             UPM
Recursos
  http://jakarta.apache.org/log4j/
         4  agina principal de log4j
          P
  http://jakarta.apache.org/log4j/doc/index.html
         4  anual en línea de ANT (normalmente
          M
          suficiente editar uno existente).
  http://jakarta.apache.org/log4j/resources.html
         4  rtículos, presentaciones y otros.
          A




- 31 -
                                                 UPM
Demostración eclipse



- 32 -
                                UPM

Mais conteúdo relacionado

Semelhante a Ant Log4j

Docencia Redes con Open Source
Docencia Redes con Open SourceDocencia Redes con Open Source
Docencia Redes con Open Sourceousli07
 
Android: desarrollo de aplicaciones
Android: desarrollo de aplicacionesAndroid: desarrollo de aplicaciones
Android: desarrollo de aplicacionesJose Luis Lopez Pino
 
Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache AntIker Canarias
 
Rails Against The Machine
Rails Against The MachineRails Against The Machine
Rails Against The Machineguestae6a05
 
Instalación de XAMPP en Linux
Instalación de XAMPP en LinuxInstalación de XAMPP en Linux
Instalación de XAMPP en Linuxadri_mlg
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupalcamposer
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerceDavid Ramirez
 
Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4David Ramirez
 
Comandos
ComandosComandos
Comandosillia97
 
Conferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsConferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsDavid Calavera
 
Openmeetings+En+Xp
Openmeetings+En+XpOpenmeetings+En+Xp
Openmeetings+En+Xpguestad4dd2f
 
Taller oop presentacion
Taller oop presentacionTaller oop presentacion
Taller oop presentacionmaxkalavera
 
Taller oop presentacion
Taller oop presentacionTaller oop presentacion
Taller oop presentacionmaxkalavera
 
Creacion de un IPS utilizando Linux y hardware Soekris
Creacion de un IPS utilizando Linux y hardware SoekrisCreacion de un IPS utilizando Linux y hardware Soekris
Creacion de un IPS utilizando Linux y hardware Soekrisozikox
 

Semelhante a Ant Log4j (20)

Docencia Redes con Open Source
Docencia Redes con Open SourceDocencia Redes con Open Source
Docencia Redes con Open Source
 
Android: desarrollo de aplicaciones
Android: desarrollo de aplicacionesAndroid: desarrollo de aplicaciones
Android: desarrollo de aplicaciones
 
Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache Ant
 
Rails Against The Machine
Rails Against The MachineRails Against The Machine
Rails Against The Machine
 
T32
T32T32
T32
 
Instalación de XAMPP en Linux
Instalación de XAMPP en LinuxInstalación de XAMPP en Linux
Instalación de XAMPP en Linux
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupal
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerce
 
Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4
 
Comandos
ComandosComandos
Comandos
 
Conferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsConferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y Rails
 
0 entorno php
0 entorno php0 entorno php
0 entorno php
 
Openmeetings+En+Xp
Openmeetings+En+XpOpenmeetings+En+Xp
Openmeetings+En+Xp
 
Taller oop presentacion
Taller oop presentacionTaller oop presentacion
Taller oop presentacion
 
Taller oop presentacion
Taller oop presentacionTaller oop presentacion
Taller oop presentacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Make a Distro
Make a DistroMake a Distro
Make a Distro
 
Comandos de red
Comandos de redComandos de red
Comandos de red
 
Plone en La Jornada
Plone en La JornadaPlone en La Jornada
Plone en La Jornada
 
Creacion de un IPS utilizando Linux y hardware Soekris
Creacion de un IPS utilizando Linux y hardware SoekrisCreacion de un IPS utilizando Linux y hardware Soekris
Creacion de un IPS utilizando Linux y hardware Soekris
 

Mais de Joaquín Salvachúa (20)

Eemov data
Eemov dataEemov data
Eemov data
 
Etica big data
Etica big dataEtica big data
Etica big data
 
FIWARE Data usage control
FIWARE Data usage controlFIWARE Data usage control
FIWARE Data usage control
 
Fiware overview3
Fiware overview3Fiware overview3
Fiware overview3
 
Fiware overview
Fiware overviewFiware overview
Fiware overview
 
Kubernetes2
Kubernetes2Kubernetes2
Kubernetes2
 
Introducción al ecosistema de React.js
Introducción al ecosistema de React.jsIntroducción al ecosistema de React.js
Introducción al ecosistema de React.js
 
FIWARE Identity Manager Exercises
FIWARE Identity Manager ExercisesFIWARE Identity Manager Exercises
FIWARE Identity Manager Exercises
 
FIware Identity Manager
FIware Identity ManagerFIware Identity Manager
FIware Identity Manager
 
Fi ware en Hack for good (#H4G)
Fi ware en Hack for good  (#H4G) Fi ware en Hack for good  (#H4G)
Fi ware en Hack for good (#H4G)
 
Id fiware upm-dit
Id fiware  upm-ditId fiware  upm-dit
Id fiware upm-dit
 
Vagrant
VagrantVagrant
Vagrant
 
Big data Jornada Fundación Ramón Areces
Big data Jornada Fundación Ramón ArecesBig data Jornada Fundación Ramón Areces
Big data Jornada Fundación Ramón Areces
 
Intro20 socioeconomia
Intro20 socioeconomiaIntro20 socioeconomia
Intro20 socioeconomia
 
Master w20 01
Master w20 01Master w20 01
Master w20 01
 
Blogs micro
Blogs microBlogs micro
Blogs micro
 
Social networks upm
Social networks upmSocial networks upm
Social networks upm
 
Nube redes
Nube redesNube redes
Nube redes
 
Identidad2
Identidad2Identidad2
Identidad2
 
Blogs Micro
Blogs MicroBlogs Micro
Blogs Micro
 

Último

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 

Último (12)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 

Ant Log4j

  • 2. Classpath   Variable de entorno necesaria para encontrar bibliotecas de funciones (jar).   Distinguir entre las múltiples instalaciones.   Uso complementario: 4  ariable JAVA_HOME V -2- UPM
  • 3. Desarrollo java   Necesidad de herramientas de desarrollo.   Utilidades 4  onstruir programas. C 4  utomatizar pruebas. A 4  acilidades de trazado. F   Entornos integrados: 4  esados: matar moscas a cañonazos. P 4  aros: C •  Excepto netbeans: http://www.netbeans.org •  Gratis pero hace falta memoria (>= 128 Mb) -3- UPM
  • 4. Herramientas proporcionadas   Código de dominio publico de la mayor calidad: 4  onstrucción de programas: C • ANT 4  estión de trazas y LOGS: G • LOG4J 4  ntorno : eclipse - netbeans E -4- UPM
  • 5. ANT -5- UPM
  • 6. ¿Que es ANT ?   Plataforma para la construcción de programas (equivalente a make y makefiles).   Portable, totalmente escrito en java: Independiente de la plataforma.   Mejora ciertas características de make: ficheros de configuración XML.   Código abierto (parte del proyecto jakarta de apache).   Posibilidad de realizar scripts sencillos -6- UPM
  • 7. Utilidad   Independiente de la plataforma 4 Solo requiere una JVM 4 Independiente de maquina (windows, unix, mac). No importan path o retornos de carro.   Fácil de utilizar 4 Incluye facilidades típicas de construcción de programas. 4 Disponibles tareas encontradas útiles por usuarios. 4 Elimina ciertos detalles crípticos de make.   Fácil de extender 4 Crear una nueva tarea es tan sencillo como heredar una clase y añadir el comportamiento deseado.   Estándar de facto en programas Java. -7- UPM
  • 8. Estructura de un fichero ant   Project 4  na colección de objetivos de alto nivel. U   Property 4  na variable de ant: usado para configurar. U   Target 4  n conjunto de tareas a ejecutar para conseguir U un cierto objetivo.   Task 4  na unidad de ejecución (cada paso). U -8- UPM
  • 9. Funcionamiento   Existe un fichero con el proyecto en la raíz (build.xml).   Cada fichero contiene uno o mas objetivos (target)   Cada objetivo se ejecuta: 4  or que el proyecto depende de el P 4  e indica el nombre por línea de comandos. S   Cada tarea se ejecuta (si es necesaria) una sola vez.   Algunas tareas pueden ser condicionales. -9- UPM
  • 10. Estructura típica de directorios   project 4 README files, build.xml, etc. 4 classes •  ficheros. .class 4 doc •  Documentación del proyecto •  api –  Ficheros javadoc generados 4 docroot •  Ficheros necesarios para aplicaciones web (HTML, JSP, XML, etc): 4 lib •  Ficheros JAR con librerías necesarias para el proyecto. 4 Src •  Código fuente del proyecto - 10 - UPM
  • 11. Revisión rápida de XML   Comenzamos con la línea: <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>   Las etiquetas van entre < y > y finalizan con / <tag>body</tag> or <tag/>   Las etiquetas distinguen mayúsculas y minúsculas (distinto de HTML).   Las etiquetas pueden ser autocontenidas <tag attribute=quot;valuequot;/>   Los valores y las strings tienen que ir entre comillas. - 11 - UPM
  • 12. Etiqueta Project <project name=quot;MyProjectquot; default=quot;distquot; basedir=quot;.quot;> ... </project>   Objetivo principal. Indica que tareas son obligatorias.   Donde esta el código: 4  so de paths relativos para evitar problemas. U - 12 - UPM
  • 13. Etiqueta Target <target name=quot;distquot; depends=quot;initquot; description=quot;Makes a distributionquot; if=quot;code-presentquot; unless=quot;time-is-shortquot;> ... </target>   Objetivo a alcanzar. Obligatorio el nombre (“name”) de la tarea.   Puede depender de otras que han de completarse antes.   El resto de campos son opcionales. - 13 - UPM
  • 14. Algunas referencias a ficheros   Pattern-sets <patternset id=quot;my.patternquot;> <include name=quot;**/*.javaquot;/> <exclude name=quot;**/*Test*quot;/> </patternset>   File-sets <fileset dir=quot;./sourcequot;> <patternset refid=quot;my.pattern“/> </fileset> - 14 - UPM
  • 15. Un build.xml sencillo <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <project name=quot;Testquot; default=quot;distquot; basedir=quot;.quot;> <target name=quot;distquot;> <javac srcdir=quot;.quot;/> </target> </project>   Mínimo fichero que compila todos los .java de un directorio recursivamente. - 15 - UPM
  • 16. Tareas incorporadas   Ant   Echo   AntCall   Exec   AntStructure   ExecOn   Apply   Fail   Available   Filter   Chmod   FixCRLF   Copy   GenKey   Cvs   Get   Delete   GUnzip - 16 - UPM
  • 17. Tareas incorporadas (II)   Gzip   Property   Jar   Replace   Java   Rmic   Javac   SignJar   Javadoc   Sql   Mail   Style   Mkdir   Tar   Move   Taskdef   Patch   Touch - 17 - UPM
  • 18. Tareas incorporadas (III)   Tstamp   Unjar   Untar   Unwar   Unzip   Uptodate   War   Zip - 18 - UPM
  • 19. Tareas Opcionales   ANTLR   JUnitReport   Cab   Native2Ascii   Depend   PropertyFile   FTP   RenameExtensions   JavaCC   Script   Javah   Sound   JJTree   Stylebook   Jlink   Telnet   JUnit   Test - 19 - UPM
  • 20. Instalación en Windows   Verificar instalación de java.   Poner variables: 4  AVA_HOME a donde este instalado el JDK: J •  Como C:jdk1.4 4  ñadir al CLASSPATH A •  Ant.jar y xerces.jar 4  ñadir al PATH A •  %ANT_HOME%bin   Verificar documentació: http://ant.apache.org/manual/install.html - 20 - UPM
  • 21. Pantalla   Indica las tareas que va ejecutando: 4 Ejemplo: Searching for build.xml ... Buildfile: C:XMLProgLabsFrameworkbuild.xml prepare: [mkdir] Created dir: C:XMLProgLabsFrameworkclasses compile: [javac] Compiling 26 source files to C:XMLProgLabs Frameworkclasses war: [war] Building war: C:XMLProgLabsFrameworkshopping.war undeploy: [delete] Deleting directory C:Tomcatwebappsshopping [delete] Deleting: C:Tomcatwebappsshopping.war deploy: [copy] Copying 1 files to C:Tomcatwebapps BUILD SUCCESSFUL Total time: 5 seconds - 21 - UPM
  • 22. Recursos   http://jakarta.apache.org/ant/ 4  agina principal de ant P   http://jakarta.apache.org/ant/manual/ index.html 4  anual en línea de ANT (normalmente M suficiente editar uno existente).   http://jakarta.apache.org/ant/resources.html 4  rtículos, presentaciones y otros. A - 22 - UPM
  • 24. Depurar / notificar con println public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello world!”); } } - 24 - UPM
  • 25. Complejidad de aplicaciones reales   Aplicaciones multihilo y multiusuario.   Puede ser un servidor sin “pantalla” y por lo tanto sin posibilidad de imprimir.   Distintas instancias de objetos y servicios: mensajes mezclados en pantalla.   Utilidad: 4  epurar. D 4  aber lo que esta pasando S 4  ontrol de seguridad: control de ataques/ C hackers. - 25 - 4  edireccionable a fichero. R UPM
  • 26. Hello Log4j import org.apache.log4j.*; public class HelloLog4j { private static Logger logger = Logger.getLogger (HelloLog4j.class); // estático para inicializar. // necesario añadir esta línea en cada clase. public static void main(String[] args) { BasicConfigurator.configure(); // configurar 1 vez en el programa logger.debug(“In the main methodquot;); logger.info(quot;What a beautiful day.quot;); logger.error(“This is an error message.”); } } - 26 - UPM
  • 27. Salida por pantalla 0 [main] DEBUG HelloLog4j - In the main method 0 [main] INFO HelloLog4j - What a beautiful day. 10 [main] ERROR HelloLog4j - This is an error message. - 27 - UPM
  • 28. org.apache.log4j.Level Orden: DEBUG < INFO < WARN < ERROR < FATAL Otros niveles: 4  evel.ALL L 4  evel.OFF L - 28 - UPM
  • 29. Algunos objetos   java.util.logging Handlers StreamHandler ConsoleHandler FileHandler SocketHandler MemoryHandler   java.util.logging Formatters SimpleFormatter XMLFormatter   Posibilidad de configurar con fichero XML. - 29 - UPM
  • 30. Java logger   Añadido en jdk 1.5   No hay necesidad de instalar nada.   java.util.logging.Logger   Uso opcional de uno u otro: Decisión de diseño. - 30 - UPM
  • 31. Recursos   http://jakarta.apache.org/log4j/ 4  agina principal de log4j P   http://jakarta.apache.org/log4j/doc/index.html 4  anual en línea de ANT (normalmente M suficiente editar uno existente).   http://jakarta.apache.org/log4j/resources.html 4  rtículos, presentaciones y otros. A - 31 - UPM