Diferencia entre revisiones de «Maven»

De Dos Ideas.
Saltar a: navegación, buscar
Línea 8: Línea 8:
  
 
==Conceptos de Maven==
 
==Conceptos de Maven==
===Dependencias transitivas===
+
===Dependencias Transitivas (Transitive Dependencies)===
 
Esto es que las dependencias que declara una dependencia son utilizadas como dependencias propias del POM que se está utilizando.
 
Esto es que las dependencias que declara una dependencia son utilizadas como dependencias propias del POM que se está utilizando.
 
Ejemplo: si A declara dependencias sobre B y B declara dependencias sobre X e Y, cuando se ejecuten las fases del ciclo de vida de Maven se van a utilizar como dependencias B, X e Y.
 
Ejemplo: si A declara dependencias sobre B y B declara dependencias sobre X e Y, cuando se ejecuten las fases del ciclo de vida de Maven se van a utilizar como dependencias B, X e Y.
===POM===
+
===POM ('''P'''roject '''O'''bject '''M'''odel)===
'''P'''roject '''O'''bject '''M'''odel. Es un archivo xml llamado pom.xml y ubicado en la raiz de un proyecto (o un módulo) que declara datos sobre el mismo, dependencias y plugins a utilizar durante el ciclo de vida de la administración del proyecto.
+
Es un archivo xml llamado pom.xml y ubicado en la raiz de un proyecto (o un módulo) que declara datos sobre el mismo, dependencias y plugins a utilizar durante el ciclo de vida de la administración del proyecto.
[http://]
+
[http://maven.apache.org/pom.html]
===
+
===Herencia y POM Real (Effective POM)===
 +
Los POMs pueden heredar de otro POM que se defina como parent. La raiz implícita desde donde heredan todos los POMs es el Super POM definido por Maven.
 +
El POM resultante luego de incorporar todos los ancestros se llama Effective POM. Se puede inspeccionar corriendo el goal effective-pom del plugin help parados sobre el directorio donde se encuentra el pom en cuestión.
 +
<code>mvn help:effective-pom</code>
 +
===Goal===
 +
Los Goals de Maven son las unidades mínimas de ejecución de las que disponemos durante su uso.
 +
===Dependencia (Dependency)===
 +
===Grupo (Group)===
 +
===Artefacto (Artifact)===
 +
===Repositorio (Repository)===
 +
===Coordenada (Coordinate)===
 +
===MOJO ('''M'''aven Plain '''O'''ld '''J'''ava '''O'''bject)===
 +
===Plugin===
 +
===Comandos de Ciclo de Vida (Lifecycle Command)===
 +
===Arquetipo (Archetype)===
 +
 
 
==Plugins==
 
==Plugins==
 
* Jar
 
* Jar
Línea 28: Línea 43:
 
* [[Automatizacion De Build]]
 
* [[Automatizacion De Build]]
 
* [http://maven.apache.org/ Web oficial de Maven]
 
* [http://maven.apache.org/ Web oficial de Maven]
 +
 +
* listado de plugins oficiales
 +
* proyecto mojo
 +
* libro pdf online
 +
* listado del repositorio central
 +
* snippets
 +
* junit
 +
* reconfiguracion del compile
 +
* multi modulo
 +
* ejb
 +
* servlet
 +
* plugins comunes
 +
* help
 +
* archetype
 +
* install

Revisión del 12:10 4 nov 2008

Maven es una herramienta software para la gestión y comprensión de proyectos Java.

La versión 2 usa un archivo de configuración en XML llamado pom.xml. Su funcionalidad es parecida a Apache Ant de manera que permite compilar, ejecutar test o realizar distribuciones pero con la diferencia que trata de forma automática las dependencias del proyecto. Una de las más importantes características es su actualización en línea mediante servidores repositorios. Maven es capaz de descargar nuevas actualizaciones de las bibliotecas de las que depende el proyecto y de igual manera subir una nueva distribución a un repositorio de versiones, dejandola al acceso de todos los usuarios.

Diferencias con Ant

Declarativo vs. Procedural

En Ant las acciones a realizar se definen en forma procedural paso por paso, mientras que con Maven se declara que plugins se van a utilizar, con que configuración y con que dependencias y Maven se encarga del orden en el que se utilizan las cosas para lograr el objetivo declarado.

Conceptos de Maven

Dependencias Transitivas (Transitive Dependencies)

Esto es que las dependencias que declara una dependencia son utilizadas como dependencias propias del POM que se está utilizando. Ejemplo: si A declara dependencias sobre B y B declara dependencias sobre X e Y, cuando se ejecuten las fases del ciclo de vida de Maven se van a utilizar como dependencias B, X e Y.

POM (Project Object Model)

Es un archivo xml llamado pom.xml y ubicado en la raiz de un proyecto (o un módulo) que declara datos sobre el mismo, dependencias y plugins a utilizar durante el ciclo de vida de la administración del proyecto. [1]

Herencia y POM Real (Effective POM)

Los POMs pueden heredar de otro POM que se defina como parent. La raiz implícita desde donde heredan todos los POMs es el Super POM definido por Maven. El POM resultante luego de incorporar todos los ancestros se llama Effective POM. Se puede inspeccionar corriendo el goal effective-pom del plugin help parados sobre el directorio donde se encuentra el pom en cuestión. mvn help:effective-pom

Goal

Los Goals de Maven son las unidades mínimas de ejecución de las que disponemos durante su uso.

Dependencia (Dependency)

Grupo (Group)

Artefacto (Artifact)

Repositorio (Repository)

Coordenada (Coordinate)

MOJO (Maven Plain Old Java Object)

Plugin

Comandos de Ciclo de Vida (Lifecycle Command)

Arquetipo (Archetype)

Plugins

  • Jar
  • War
  • Ear
  • JUnit
  • Distribution: permite meter en un fichero zip todos los archivos del proyecto
  • PDF: genera la documentación del proyecto en PDF
  • Checkstyle: control de convenciones de codificación Java
  • PMD: verificación de reglas de codificación

Ver también

  • listado de plugins oficiales
  • proyecto mojo
  • libro pdf online
  • listado del repositorio central
  • snippets
  • junit
  • reconfiguracion del compile
  • multi modulo
  • ejb
  • servlet
  • plugins comunes
  • help
  • archetype
  • install