Professional Documents
Culture Documents
Maven
Maven
¿ Qué es Maven ?
Descarga e instalación
Proyecto Simple
Core Conceptos
Crear un proyecto Pom . (Proyecto Multimodulo)
Proyecto hijos y dependencias entre ellos (war-jar)
Crear un proyecto Jar
Crear un proyecto War
Repositorio local
Scope de las dependencias
Plugins
Eclipse y Maven
Ejemplo Comentados
Perfiles y filtros
Configuracion de Plugin
Información adicional en proyectos
Dependencias entre proyectos. ( Capa Web-Capa Negocio-Capa Persistencia)
Optimizando Proyectos
Artículos Técnicos
MAVEN
¿ Qué es Maven ?
MAVEN
http://books.sonatype.com
http://maven.apache.org/download.cgi
http://maven.apache.org
MAVEN vs Ant
INSTALACION MAVEN
MAVEN
http://maven.apache.org/download.cgi
MAVEN
●
Variable JAVA_HOME: Apuntando a nuestra instalación del jdk.
C:\Archivos de Programa\Java\jdk_1_x
●
PATH ruta a la carpeta bin: C:\mi_directorio\maven-3.2.1\bin
Comprobando la versión de
MAVEN Maven
mvn -version
MAVEN
ARTECHYPES
MAVEN
http://maven.apache.org/guides/introduction/introduction-to-archetypes.html
MAVEN
MAVEN
CONCEPTOS
MAVEN
groupId. Es el grupo de proyectos
Archetype
artifactId. Es un proyecto concreto
DgroupId
DartifactId
MAVEN
https://mvnrepository.com
MAVEN.
DIRECTORIOS ÉSTANDAR
MAVEN.
+ CONCEPTOs
MAVEN
CICLO VIDA DEL PROYECTO
MAVEN
CICLO DE VIDA DEL PROYECTO
MAVEN
MAVEN
UN PROYECTO POM
MAVEN
Crear un proyecto
MAVEN
PROYECTO PADRE ( TIPO POM ).
Cambiando el packagin
MAVEN
PROYECTO JAR
MAVEN
PROYECTO JAR
MAVEN
EL POM DEL PROYECTO PRINCIPAL
MAVEN
EL POM DEL PROYECTO HIJO
MAVEN
EL BINARIO DEL PROYECTO
mvn install
MAVEN
MAVEN
PROYECTO WAR
MAVEN
MAVEN.
+ CONCEPTOs
MAVEN.
Dependencias
http://search.maven.org/#browse https://repository.sonatype.org/
https://mvnrepository.com
MAVEN.
Practicando
MAVEN
ECLIPSE Y MAVEN
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.9</version>
</dependency>
http://maven.apache.org/plugins/index.html
MAVEN
EL PLUGIN ASSEMBLY
MAVEN
EL PLUGIN ASSEMBLY
MAVEN.
Configurando un plugin
<assembly>
<id>bin</id>
<formats>
<!-- Formatos en el que queremos el zip -->
<format>tar.gz</format>
<format>tar.bz2</format>
<format>zip</format>
</formats>
<!-- Ahora que cosas queremos -->
<fileSets>
<!-- Nuestros ficheros de configuracion guardados en src/main/config-->
<fileSet>
<directory>src/main/config</directory>
<!-- Queremos que esten en un subdirectorio CONFIG dentro del zip -->
<outputDirectory>/CONFIG</outputDirectory>
</fileSet>
<fileSet>
<!-- Queremos los jar generados en target se incluyan en el directorio Jar dentro del zip -->
<directory>target</directory>
<outputDirectory>/Jar</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
<!-- Queremos incluir los jar de los que dependemos -->
<dependencySets>
<dependencySet>
<!-- Queremos los jar dentro de un directorio Jar dentro del zip -->
<outputDirectory>/Jar</outputDirectory>
<!-- Que añada todo lo necesario para la ejecución -->
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>
<build>
<finalName>tutorial_maven_webapp</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<configuration>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>9090</port>
</connector>
</connectors>
</configuration>
</plugin>
</plugins>
</build>
mvn jetty:run
MAVEN
mvn pdf:pdf
MAVEN
JAVADOC
MAVEN
JAVADOC
MAVEN
SITE DEL PROYECTO
MAVEN
mvn:test
MAVEN
PROYECTO CH-CUSTOM
El proyecto ch-custom
mvn dependency:resolve
mvn dependency:tree
Buscando ayuda
mvn help:describe -Dplugin=exec -Dfull
mvn install -X
TEST DE UNIDAD
mvn:test
TEST DE UNIDAD
mvn:test
TEST DE UNIDAD
Jetty es un plugin que nos permite con ese sólo comando lanzar nuestra
Aplicación.
Hace actualizaciones en caliente
El archivo web.xml
PROYECTO SIMPLE-WEB
En este proyecto vamos a observar un proyecto Maven multi-módulo que producirá dos
aplicaciones: una herramienta de consulta de línea de comandos para los datos de Yahoo! y una
aplicación web que consulta el feed Clima Yahoo!.
Ambas aplicaciones almacenan los resultados de las consultas en una base de datos integrada.
Cada uno de ellos permitirá al usuario recuperar datos meteorológicos históricos de esta base
de datos integrada. Ambas aplicaciones reutilizarán lógica de la aplicación y comparten una
biblioteca de persistencia.
Este proyecto se divide en cinco submódulos que se muestran en la Figura 7.1, "multi-módulo
Enterprise Application Module Relaciones".
PROYECTO JEE
PROYECTO JEE
POM.XML
SIMPLE-MODEL
POM.XML
SIMPLE-MODEL
POM.XML
SIMPLE-WEB APPLICATION MODULE
(web.xml)
SIMPLE-WEB APPLICATION MODULE
POM.XML
LAS CLASES CONTROLADORES
PLANTILLAS VELOCITY
EL WEB.XML
http://velocity.apache.org/engine/devel/tr
anslations/user-guide_es.html
SIMPLE-WEB APPLICATION MODULE
<mvn jetty:run
http://localhost:8080/simple-webapp/weather.x?zip=60202
SIMPLE-WEB APPLICATION MODULE
EL POM.XML
LA CLASE MAIN
EJECUTANDO LA APLICACION
mvn hibernate3:hbm2ddl
mvn assembly:assembly
SIMPLE-WEB APPLICATION MODULE
org.sonatype.mavenbook.weather.Main 6020 2
<pluginManagement>
<dependencyManagement>
<properties>
SIMPLE-WEB APPLICATION MODULE
mvn dependency:analyze
BUENA PRACTICA
Con variables
MAVEN
ACTIVACION
MAVEN
PROPIEDADES EN LOS PERFILES
MAVEN
ACTIVACION