open source tools for java projects

21
Herramientas Open Source para Desarrollo de Software con Java Spring Tours UPeU 2009 José Luis Gutiérrez

Upload: jose-gutierrez

Post on 30-Jan-2015

2.840 views

Category:

Technology


2 download

DESCRIPTION

Brief description of Open Source Java Tools that are necesary in Software Development.

TRANSCRIPT

Page 1: Open Source Tools for Java Projects

Herramientas Open Source para Desarrollo de Software con Java

Spring Tours UPeU 2009José Luis Gutiérrez

Page 2: Open Source Tools for Java Projects

Descripción General Beneficios de Open Source Herramientas

◦ Control de Versiones◦ Manejo de Artefactos◦ Entorno de Desarrollo de Software◦ Integración Continua◦ Pruebas de Rendimiento y Funcionalidad

Agenda

Page 3: Open Source Tools for Java Projects

Free and Open Source Software (FOOS) es un término general usado para referirnos a aplicaciones de sistemas que son soportados por una comunidad de desarrolladores no compensadas.

FOOS es una ideal sustitución de software comercial y su uso en empresas corporativas ha ido en aumento en los últimos años.

Descripción General

Page 4: Open Source Tools for Java Projects

Precio. Generalmente no tiene cargos. Fiabilidad. Menos errores en el software. Innovación. Basado en el talento creativo de una

larga lista de desarrolladores. Licenciamiento. Proporciona amplios derechos a

los usuarios finales. Actualizaciones. Las FOOS son activamente

soporta, mejorando errores y capacidades. Interoperabilidad. No impone restricciones y se

adhieren abiertamente a interfaces con otros sistemas.

Escalable.

Algunos beneficios de Open Source son:

Page 5: Open Source Tools for Java Projects

Control de Versiones

Page 6: Open Source Tools for Java Projects

Sistema Open Source para control de versiones, originalmente diseñado para reemplazar CVS.

Administra archivos y directorios al mismo tiempo.

Maneja un árbol de archivos en un repositorio central.

Subversion puede ser accedido desde cualquier punto de red la cual permite ser usado por personas en diferentes computadoras.

Plugins para IDEs

Subversion

http://subversion.tigris.org

Page 7: Open Source Tools for Java Projects

Manejo de Artefactos

Page 8: Open Source Tools for Java Projects

Herramienta de secuencia de comandos para automatizar la construcción de procesos Java.

Leguaje de secuencia de comandos basado en XML.

Puede ser extendido usando clases Java. Ejemplo buid.xml

Apache Ant

<project name=”TestProject” default=”dist” basedir=”.”>  <property name=”src” location=”src”/>  <property name=”build” location=”build”/>  <property name=”dist”  location=”dist”/>  <target name=”init”>    <mkdir dir=”${build}”/>  </target>  <target name=”compile” depends=”init”        description=”compile the source ” >    <javac srcdir=”${src}” destdir=”${build}”/>  </target>  <target name=”dist” depends=”compile”        description=”generate the distribution” >    <mkdir dir=”${dist}/lib”/>    <jar jarfile=”${dist}/lib/MyProject-${DSTAMP}.jar” basedir=”${build}”/>  </target></project>

http://ant.apache.org

Page 9: Open Source Tools for Java Projects

Herramienta Open Source para manejos de proyectos y manejo de artefactos.

Esta basado en tecnología XML llamado Project Object Model (POM)

Maven automatiza las secuencias de comando normalmente escritos en Ant.

Soporta multiples projectos incluidos con herencias, repositorio pre configurado y usa plugins extensibles

Ejemplo del archivo pom.xml

Maven

<project>

<modelVersion>4.0.0</modelVersion>

<groupId>com.mycompany.app</groupId>

<artifactId>my-app</artifactId>

<version>1.0</version>

<dependencies>

<dependency>

<groupId>org.apache.maven</groupId>

<artifactId>maven-artifact</artifactId> <version>${mavenVersion}</version>

</dependency>

</dependencies>

</project> http://maven.apache.org

Page 10: Open Source Tools for Java Projects

Ivy administra dependencias Java. Toda las dependencias pueden ser especificadas en un

archivo Ivy XML. Integración con Apache Ant Provee reportes de dependencia incluyendo reportes

graficos para ver dependencias transitivas Ejemplo ivy:

Ivy

<ivy-module version="2.0"> <info organisation="apache" module="hello-ivy"/> <dependencies>      <dependency org="commons-lang" name="commons-lang" rev="2.0"/> <dependency org="commons-cli" name="commons-cli" rev="1.0"/> </dependencies></ivy-module>

http://ant.apache.org/ivy

Page 11: Open Source Tools for Java Projects

Entorno de Desarrollo Integrado(IDE)

Page 12: Open Source Tools for Java Projects

Eclipse

http://www.eclipse.org

Eclipse es una colección de proyectos Open Source.

Eclipse integra diversos módulos llamados “Plug-in”.

Es iniciado como un Java IDE, pero tambien tiene cobertura para mas lenguajes estáticos y dinamicos;

Page 13: Open Source Tools for Java Projects

Eclipse Plug-ins

http://www.eclipse.org

Mayormente los plug-ins usados son: Por defecto; WTP, Ant, JUnit, Axis, BIRT y otros. Subclipse; soporte para subversion dentro del

Eclipse IDE. Hibernate Tools; Soporte para integracion con

Hibernate. Spring IDE; Soporte para Spring Beans y

Webflow Maven; para iniciar tareas Maven y manejo de

dependencias. PMD, CheckStyle; para verificación de reglas

de compilación.

Page 14: Open Source Tools for Java Projects

Integración Continua

Page 15: Open Source Tools for Java Projects

Hudson

https://hudson.dev.java.net

Hudson es un motor extensible de Integración Continua que puede ser iniciada en un contenedor de Servlet (Tomcat, GlassFish).

Soporta herramientas SCM incluyento CVS, Subversion.

Los proyectos pueden ser ejecutados a travez de tareas programadas

Page 16: Open Source Tools for Java Projects

Sonar Plataforma que maneja la calidad del código

fuente, dedicado a analizar y medir la calidad técnica basado en estándares de reglas de compilación tales como PMD y CheckStyle.

Algunas características son: Visualiza dashboard de proyectos con

información resumida de métricas de software como Mantenibilidad, Escalabilidad, Complejidad, Portabilidad.

Provee información de Métricas de Código Provee información de evaluación de cobertura.

http://sonar.codehaus.org

Page 17: Open Source Tools for Java Projects

Pruebas de Rendimientoy

Funcionalidad

Page 18: Open Source Tools for Java Projects

JMeter Apache JMeter una aplicación 100% puro

Java, aplicación para escritorio, diseñado para cargar pruebas de funcionamiento y medir el rendimiento.

Puede ser usado para pruebas de rendimiento en fuentes estáticas y dinámicas (Files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers y más).

Puede soportar diferentes tipos de servidores: Web, SOAP, JDBC, LDAP, JMS, Mail.

http://jakarta.apache.org/jmeter

Page 19: Open Source Tools for Java Projects

Selenium Apache JMeter una aplicación 100% puro

Java, aplicación para escritorio, diseñado para cargar pruebas de funcionamiento y medir el rendimiento.

Puede ser usado para pruebas de rendimiento en fuentes estáticas y dinámicas (Files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers y más).

Puede soportar diferentes tipos de servidores: Web, SOAP, JDBC, LDAP, JMS, Mail.

http://jakarta.apache.org/jmeter

Page 20: Open Source Tools for Java Projects

Cómo trabaja Selenium?

Page 21: Open Source Tools for Java Projects

¿Preguntas?