m4-uf1 framework spring
eugeniaperez.es
eugeniaperez.es
m4-uf1 FRAMEWORK SPRING
UNIDAD 1: SISTEMAS DE CONTROL DE VERSIONES
UNIDAD 1: SCV
eugeniaperez.es
- Un SCV es un software que controla y organiza las distintas revisiones que se realicen sobre uno o varios documentos
- Una revisión es un cambio realizado sobre un documento
- Ventajas:
- Guarda un historial -> permite restaurar versiones anteriores
- Almacén de copias de seguridad de las versiones
- Facilita el trabajo en equipo
- Ayuda en la solución de conflictos
UNIDAD 1: SCV
eugeniaperez.es
- Centralizados
- Todo está almacenado en el servidor
- Los desarrolladores descargan una copia local, la modifican y envían los cambios al servidor
- Ejemplos: CVS, Subversion
Tipos de control de versiones
UNIDAD 1: SCV
eugeniaperez.es
- Distribuidos
- Las operaciones son más rápidas al ser locales
- Mejor gestión de las ramas
- Más seguridad y mejor rendimiento
- Trabajar sin conexión
- Sin repositorio central es difícil saber cuál es la última versión
- 2 nuevos comandos: push, pull
- Ejemplos: git
Tipos de control de versiones
UNIDAD 1: SCV
eugeniaperez.es
- Interfaz de comandos
- Clientes gráficos para mejorar la usabilidad
- Integración en IDE
- Clientes gráficos standalone
Interfaces
UNIDAD 1: SCV
eugeniaperez.es
- Check-in / commit: publicación de cambios
- Check-out: descargar copia de trabajo local
- Actualizaciones de código...
- Congelaciones de versiones
- Gestión de conflictos
- Seguir las buenas prácticas en la aplicación de estas operaciones
1.1 Principales operaciones
UNIDAD 1: SCV
eugeniaperez.es
- Instalación de subversion
- Servidor
- Cliente
- Tortoise: http://tortoisesvn.net/downloads.html
- Instalación de git: http://git-scm.com/download/
- Repositorio remoto: Bitbucket
- Integración con IDE: Eclipse
1.2 Creación de repositorios
UNIDAD 1: SCV
eugeniaperez.es
- Branching
- Bifurcación para crear una segunda rama de trabajo
- Suelen crearse para realizar desarrollos paralelos temporales o corregir defectos
- Merging
- Integración de una rama en otra, combinando ambas
1.3 Creación de ramas y merges
UNIDAD 1: SCV
eugeniaperez.es
- Tagging
- Se crean cuando queremos congelar la aplicación en un estado susceptible de ser liberado al mercado
- Se etiqueta con el número de versión que representa
1.3 Creación de ramas y merges
UNIDAD 1: SCV
eugeniaperez.es
- Tagging
- Se crean cuando queremos congelar la aplicación en un estado susceptible de ser liberado al mercado
- Se etiqueta con el número de versión que representa
1.3 Creación de ramas y merges
eugeniaperez.es
m4-uf1 FRAMEWORK SPRING
FIN DE LA UNIDAD 1: SISTEMAS DE CONTROL DE VERSIONES
eugeniaperez.es
m4-uf1 FRAMEWORK SPRING
UNIDAD 13: GESTIÓN DE DEPENDENCIAS CON MAVEN
m4-uf1 framework spring
eugeniaperez.es
Unidad 13 - Gestión de dependencias Maven
- Herramienta de software para la gestión y construcción de proyectos Java
- Formato basado en XML
- Utiliza un POM para describir el proyecto
m4-uf1 framework spring
eugeniaperez.es
Unidad 13 - Gestión de dependencias Maven
- Estructura de un proyecto Maven
Proyecto/pom.xml
Proyecto/src
Proyecto/src/main
Proyecto/src/main/java/Hola.java
Proyecto/src/main/resources
Proyecto/src/test
m4-uf1 framework spring
eugeniaperez.es
Unidad 13 - Gestión de dependencias Maven
- mvn install
- Procesar recursos
- Compilar código
- Ejecución tests unitarios
- Generación JAR e instalación en repositorio
Proyecto/target
Proyecto/target/Hola-1.0.jar
Proyecto/target/classes/Hola.class
m4-uf1 framework spring
eugeniaperez.es
13.1 Repositorios de librerías
- Maven descarga las dependencias indicadas y las almacena en el equipo (repositorio local)
- No será necesario volver a descargarlas
- Repositorio central y oficial de Maven
http://mvnrepository.com/
m4-uf1 framework spring
eugeniaperez.es
13.2 Dependencias
- Cómo incluir una dependencia con Maven:
- Buscarla en el repositorio Maven
- Incluirla en nuestro pom.xml
- Maven la buscará en nuestro repositorio local (.m2)
- Si no la encuentra la buscará en el repositorio de Maven
m4-uf1 framework spring
eugeniaperez.es
13.3 Configuración
- Organizada en fases, que agrupan tareas
- Desde consola
- Descargar Maven: http://maven.apache.org/download.cgi
- Descomprimir
- Configurar variables de entorno
- Fichero POM
- Contiene la información requerida para generar el proyecto
m4-uf1 framework spring
eugeniaperez.es
13.3 Configuración
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Maven Quick Start Archetype</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
m4-uf1 framework spring
eugeniaperez.es
13.3 Configuración. Fases de Maven
- validate: valida que el proyecto es correcto
- compile: compila el código fuente
- test: prueba el código compilado
- package: coge el código compilado, y lo empaqueta en un formato distribuible como por ejemplo JAR
- integration-test: procesa y despliega el paquete si es necesario en un entorno donde se puedan ejecutar tests de integración
- install: instala el paquete en el repositorio local para que sea usado como dependencia desde otro proyecto
m4-uf1 framework spring
eugeniaperez.es
13.3 Configuración
- Aunque puede manejarse desde consola, los IDEs suelen ofrecer integración con Maven
m4-uf1 framework spring
eugeniaperez.es
13.3 Comandos útiles
- Ayuda
mvn help:help - Install
mvn install - Desarrollo vs. producción
- Settings.xml: definición de los distintos entornos
- Fichero properties con variables de configuración deseadas que se usarán en la aplicación
- En el POM definimos el valor de las variables para cada entorno
m4-uf1 FRAMEWORK SPRING
eugeniaperez.es
FIN DE LA UNIDAD 13: GESTIÓN DE DEPENDENCIAS CON MAVEN
Copy of deck
By eugenia_perez
Copy of deck
- 1,070