Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Introduccin
1. Cul es el POM?
2. vista rpida
2. Los basicos
1. Coordenadas Maven
2. relaciones POM
1. dependencias
1. Especificacin de requisitos de dependencia Versin
2. exclusiones
2. Herencia
1. El Super POM
2. Gestin de la dependencia
3. La agregacin (o de mltiples mdulos)
1. . La herencia v Agregacin
3. propiedades
3. Configuracin de creacin
1. Construir
1. El conjunto de elementos BaseBuild
1. recursos
2. plugins
3. Gestin Plugin
2. El Conjunto de Elementos de construccin
1. directorios
2. extensiones
2. informes
1. Conjuntos de informe
4. Ms informacin sobre el proyecto
1. licencias
2. Organizacin
3. Desarrolladores
4. colaboradores
5. Configuracin del entorno
1. Gestin de Problemas
2. Gestin de la Integracin Continua
3. Listas de correo
4. SMC
5. Requisitos previos
6. repositorios
7. repositorios de complementos
8. Gestin de la distribucin
1. Repositorio
2. Distribucin del sitio
3. reubicacin
9. perfiles
1. Activacin
2. El BaseBuild Conjunto de Elementos (revisited)
6. Final
Introduccin
Cul es el POM?
POM significa "Proyecto de Modelo de objetos". Es una representacin XML de un
proyecto Maven celebrada en un archivo denominado pom.xml . Cuando en presencia
de gente Maven, hablando de un proyecto que se habla en el sentido filosfico, ms all
de una mera coleccin de archivos que contienen cdigo. Un proyecto contiene archivos
de configuracin, as como los desarrolladores involucrados y las funciones que
desempean, el sistema de seguimiento de defectos, la organizacin y licencias, la URL
de donde el proyecto vive, dependencias del proyecto, y todas las otras piezas
pequeas que entran en jugar para dar vida cdigo. Es una ventanilla nica para todo lo
relacionado con el proyecto. De hecho, en el mundo de Maven, un proyecto no necesita
contener ningn cdigo en absoluto, simplemente un pom.xml .
vista rpida
Esta es una lista de los elementos directamente debajo de los elementos del proyecto
del POM. Observe que modelVersion contiene 4.0.0. Esa es la versin actualmente
slo est soportado POM tanto para Maven 2 y 3, y siempre se requiere.
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Los basicos
El POM contiene toda la informacin necesaria acerca de un proyecto, as como las
configuraciones de los plugins que se utilizar durante el proceso de construccin.Es,
efectivamente, la manifestacin declarativa del "quin", "qu" y "dnde", mientras que el
ciclo de vida de construccin es el "cundo" y "cmo". Esto no quiere decir que el POM
no puede afectar al flujo del ciclo de vida - que puede. Por ejemplo, configurando
el experto-antRun-plugin , se puede integrar con eficacia las tareas de hormigas en el
interior del POM. En ltima instancia es una declaracin, sin embargo. Si, una
vez build.xml le dice hormiga precisamente lo que hay que hacer cuando se ejecuta
(procedimiento), un POM establece su configuracin (declarativa). Si alguna fuerza
externa hace que el ciclo de vida para omitir la ejecucin de plug-in de hormigas, no va a
detener a los plugins que se ejecutan desde hacer su magia. Esto es a diferencia de
un build.xml archivo, donde las tareas son casi siempre depende de las lneas
ejecutadas antes de que.
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
6.
7.
8.
9.
Coordenadas Maven
El POM se ha definido anteriormente es el mnimo que tanto Maven 2 y 3 se lo
permita. GroupId: artifactId: Versin son todos los campos requeridos (aunque,
groupId y la versin no necesitan ser definidos de forma explcita si se heredan de un
padre - ms sobre la herencia ms adelante). Los tres campos actan tanto como una
direccin y la marca de tiempo en uno. Esto marca un lugar especfico en un repositorio,
que acta como un sistema de coordenadas para proyectos de Maven.
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
7.
...
8. </ Project>
relaciones POM
Un aspecto de gran alcance de Maven es en su manejo de las relaciones de los
proyectos; que incluye dependencias (y dependencias transitivas), la herencia y la
agregacin (proyectos de varios mdulos). Gestin de la dependencia tiene una larga
tradicin de ser un lo complicado para nada pero el ms trivial de los
proyectos."Jarmageddon" rpidamente sobreviene como el rbol de dependencias se
hace grande y complicado. "Jar Hell" sigue, donde las versiones de dependencias de un
sistema no son equivalentes a versiones como los desarrollados con, ya sea por la
versin incorrecta dado, o versiones en conflicto entre tarros con nombres
dependencias
La piedra angular del POM es su lista de dependencias. La mayora de cada proyecto
depende de los dems para construir y funcionar correctamente, y si todo Maven hace
por ti es administrar esta lista para usted, usted ha ganado mucho. Maven descargas y
enlaces para las dependencias que en la compilacin y otros objetivos que lo
requieran. Como un beneficio adicional, Maven trae en las dependencias de esas
dependencias (dependencias transitivas), lo que permite su lista de centrarse
nicamente en las dependencias de su proyecto requiere.
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<dependencias>
7.
<Dependency>
8.
9.
10.
11.
12.
13.
14.
</ Dependency>
15.
...
16.
</ Dependencias>
17.
...
depender nicamente de dependencias que Maven puede gestionar. Hay veces, por
desgracia, cuando un proyecto no se puede descargar desde el repositorio central
de Maven. Por ejemplo, un proyecto puede depender de un frasco que tiene una
licencia de cdigo cerrado que impide que se est en un repositorio central. Hay tres
mtodos para hacer frente a este escenario.
3. Instalar la dependencia a nivel local utilizando el plugin instalar. El mtodo es el
mtodo recomendado ms simple. Por ejemplo:
mvn instalar: instalar en archivos -dfile = no-experto-proj.jar -Dgrou
pId = some.group -DartifactId = no-experto-proj -Dversion = 1 = -Dpack
aging tarro
Tenga en cuenta que todava es necesaria una direccin, slo que esta vez se
utiliza la lnea de comandos y el plugin de instalacin crear un POM para usted
con la direccin dada.
4. Crear su propio repositorio y desplegar all. Este es un mtodo preferido para las
empresas con intranet y la necesidad de ser capaz de mantener a todos en
sincrona. Hay una meta Maven llamada despliegue: desplegar-archivo que
es similar a la instalacin: instalar-archivo meta (lea la pgina del objetivo
de la extensin para ms informacin).
5. Establecer el mbito de la dependencia del sistema y definir
un systemPath . Esto no se recomienda, sin embargo, sino que nos lleva a la
explicacin de los siguientes elementos:
clasificador :
El clasificador permite distinguir los artefactos que fueron construidas de la misma
POM, pero difieren en su contenido. Es un trozo de cuerda opcional y arbitraria que - si
est presente - se aade al nombre de artefacto justo despus del nmero de versin.
Como motivacin para este elemento, tenga en cuenta, por ejemplo, un proyecto
que ofrece un artefacto de orientacin JRE 1.5, pero al mismo tiempo tambin un
artefacto que todava apoya JRE 1.4. El primer artefacto podra estar equipado con
el clasificador jdk15 y el segundo con jdk14 de tal manera que los clientes pueden
elegir cul usar.
Otro caso de uso comn para los clasificadores es la necesidad de conectar los
artefactos secundarios a artefacto principal del proyecto. Si navega el repositorio
central de Maven, se dar cuenta de que los clasificadores de
fuentes y javadoc se utilizan para implementar el cdigo fuente del proyecto y la
documentacin de la API, junto con los archivos de clase envasados.
Tipo :
Se corresponde con el artefacto depende de envases tipo. El valor por defecto
de tarro . Si bien por lo general representa la extensin en el nombre de archivo de la
dependencia, que no siempre es el caso. Un tipo se puede asignar a una extensin
diferente y un clasificador. El tipo a menudo corresponde a los envases usados,
aunque esto tambin no es siempre el caso. Algunos ejemplos son el tarro , ejb-
cliente y la prueba de jarra . Los nuevos tipos pueden ser definidos por los plugins
que establecen las extensiones de verdad, as que esto no es una lista completa.
alcance :
Este elemento se refiere a la ruta de clase de la tarea en cuestin (compilacin y
tiempo de ejecucin, pruebas, etc.), as como la manera de limitar la transitividad de
una dependencia. Hay cinco mbitos disponibles:
compilar - este es el mbito predeterminado, utiliza si no se especifica
ninguno. Compilar dependencias estn disponibles en todas las rutas de
clases. Por otra parte, esas dependencias se propagan a proyectos dependientes.
siempre - esto es muy similar a la compilacin, sino que indica que espera el JDK
o un recipiente para proporcionar en tiempo de ejecucin. Slo est disponible en
la compilacin y prueba de ruta de clases, y no es transitiva.
tiempo de ejecucin - este mbito indica que no se requiere la dependencia para
la compilacin, pero es para su ejecucin. Es en las rutas de clases de tiempo de
ejecucin y de prueba, pero no la ruta de clase de compilacin.
prueba - este mbito indica que no se requiere la dependencia para el uso normal
de la aplicacin, y slo est disponible para las fases de compilacin y ejecucin
de pruebas. No es transitivo.
sistema - este alcance es similar al proporcionado a excepcin de que tiene que
proporcionar el archivo JAR que contiene explcitamente. El artefacto est siempre
disponible y no se busca en un repositorio.
systemPath :
se utiliza solamente si la dependencia del mbito de aplicacin es el
sistema . De lo contrario, la construccin fallar si se establece este elemento. La ruta
debe ser absoluta, por lo que se recomienda el uso de una propiedad para especificar
la ruta especfica de la mquina (ms sobre las propiedades siguientes), como $ {}
java.home / lib . Ya que se supone que las dependencias de alcance del sistema
se instalan a priori , Maven no comprobar los repositorios para el proyecto, sino que
comprueba para asegurarse de que el archivo existe. Si no es as, Maven fallar la
acumulacin y sugieren que descargar e instalar de forma manual.
opcionales :
marca opcional una dependencia cuando este proyecto en s es una
dependencia. Confuso? Por ejemplo, imagina un proyecto A , que dependa de
proyecto B para compilar una porcin de cdigo que no se puede utilizar en tiempo de
ejecucin, a continuacin, puede que no tengamos necesidad de proyecto B para todo
el proyecto. As que si el proyecto X aade proyecto Un como su propia dependencia,
entonces Maven no es necesario instalar el proyecto B en absoluto.Simblicamente,
si => representa una dependencia requerida, y -> representa opcional, aunque A =>
B puede ser el caso cuando la construccin de A X => A -> B sera el caso cuando la
construccin de X .
En los trminos ms cortos, opcional permite que otros proyectos saben que,
cuando se utiliza este proyecto, usted no necesita esta dependencia con el fin de
funcionar correctamente.
Dependencias ' versin elemento de definir los requisitos de versin, que se utiliza para
calcular la versin efectiva dependencia. Requisitos de versin tienen la siguiente
sintaxis:
1.0 : Requisito de "suave" en la 1.0 (slo una recomendacin, si coincide con todos los
exclusiones
Exclusiones dicen explcitamente Maven que no desea incluir el proyecto especificado
que es una dependencia de esta dependencia (en otras palabras, su dependencia
transitiva). Por ejemplo, el experto-embedder requiere experto ncleos , y no quiere
usarlo o sus dependencias, a continuacin, nos gustara aadir como unaexclusin .
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<dependencias>
7.
<Dependency>
8.
9.
10.
11.
<exclusiones>
12.
<Exclusin>
13.
14.
15.
</ Exclusin>
16.
</ Exclusiones>
17.
18.
</ Dependency>
...
19.
</ Dependencias>
20.
...
A veces tambin es til para recortar dependencias transitivas de una dependencia. Una
dependencia puede haber especificado incorrectamente alcances, o dependencias que
entren en conflicto con otras dependencias en su proyecto. Usando excluye comodn
hace que sea fcil de excluir todas las dependencias transitivas de una dependencia. En
el caso de abajo usted puede estar trabajando con el experto-embedder y desea
administrar las dependencias que utiliza a s mismo, por lo que recorte todas las
dependencias transitivas:
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<dependencias>
7.
<Dependency>
8.
9.
10.
11.
<exclusiones>
12.
<Exclusin>
13.
14.
15.
</ Exclusin>
16.
</ Exclusiones>
17.
</ Dependency>
18.
...
19.
</ Dependencias>
20.
...
Herencia
Una adicin de gran alcance que trae Maven para construir la gestin es el concepto de
herencia proyecto. Aunque en los sistemas de compilacin como la hormiga, la herencia
sin duda puede ser simulado, Maven ha ido un paso ms en la toma de la herencia
proyecto explcita al modelo de objeto de proyecto.
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
6.
7.
8.
9.
10.
El envasado tipo requerido para ser pom de los padres y de agregacin de proyectos
(varios mdulos). Estos tipos definen los objetivos unidos a un conjunto de etapas del
ciclo de vida. Por ejemplo, si el envase es frasco , entonces el paquete de fase se
ejecutar el tarro: Tarro de meta. Si el envase es pom , el objetivo ser
ejecutada sitio: attach-descriptor . Ahora podemos aadir valores a la matriz
POM, que ser heredado por sus hijos. Los elementos de la matriz POM que son
heredados por sus hijos son:
dependencias
desarrolladores y colaboradores
listas de plugin
listas de informes
ejecuciones de complementos con los identificadores de bsqueda
configuracin del plugin
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
6.
7.
<Parent>
8.
9.
10.
11.
12.
</ Parent>
13.
14.
3.
4.
<repositorios>
5.
<Repositorio>
6.
7.
8.
9.
10.
<Instantneas>
11.
12.
</ Instantneas>
13.
</ Repositorio>
14.
</ Repositorios>
15.
16.
<PluginRepositories>
17.
<PluginRepository>
18.
19.
20.
21.
22.
<Instantneas>
23.
24.
</ Instantneas>
25.
<comunicados>
26.
27.
</ Prensa>
28.
</ PluginRepository>
29.
</ PluginRepositories>
30.
31.
<Crear>
32.
33.
34.
35.
36.
37.
38.
39.
<recursos>
40.
<Resource>
41.
42.
</ Resource>
43.
</ Recursos>
44.
<TestResources>
45.
<TestResource>
46.
47.
</ TestResource>
48.
</ TestResources>
49.
<PluginManagement>
50.
51.
<! - Se mantienen por el momento ya que son muy poco probable que e
l conflicto con las asignaciones del ciclo de vida (MNG-4453) ->
52.
<Plugins>
53.
<Plug-in>
54.
55.
56.
</ Plugin>
57.
<Plug-in>
58.
59.
60.
</ Plugin>
61.
<Plug-in>
62.
63.
64.
</ Plugin>
65.
<Plug-in>
66.
67.
68.
</ Plugin>
69.
70.
71.
</ Plugins>
</ PluginManagement>
</ Construccin>
72.
73.
74.
<Informes>
<OutputDirectory> $ {} project.build.directory / sitio </ OutputDirec
tory>
75.
</ Informes>
76.
77.
<Perfiles>
78.
79.
80.
<Perfil>
<id> liberar perfil </ id>
81.
82.
83.
<Activacin>
<Propiedad>
84.
85.
86.
</ Property>
87.
</ Activacin>
88.
89.
90.
91.
<Crear>
<Plugins>
<Plug-in>
92.
93.
94.
<ejecuciones>
95.
<Ejecucin>
96.
97.
<objetivos>
98.
99.
100.
</ Ejecucin>
101.
</ Ejecuciones>
102.
</ Plugin>
103.
<Plug-in>
104.
105.
106.
<ejecuciones>
107.
<Ejecucin>
108.
109.
<objetivos>
110.
111.
112.
</ Ejecucin>
113.
</ Ejecuciones>
114.
</ Plugin>
115.
<Plug-in>
116.
117.
118.
<Configuration>
119.
120.
121.
122.
123.
124.
125.
</ Construccin>
</ Profile>
</ Perfiles>
126.
127.
</ Project>
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<mdulos>
13.
14.
15.
</ Mdulos>
propiedades
Las propiedades son la ltima pieza necesaria en la comprensin de conceptos bsicos
POM. Maven propiedades son el valor del marcador de posicin, al igual que las
propiedades de la hormiga. Sus valores son accesibles en cualquier lugar dentro de un
POM mediante el uso de la notacin $ {X} , donde X es la propiedad.
Vienen en cinco estilos diferentes:
1. env.X : prefijar una variable con "env". volver variable de entorno de la cscara. Por
ejemplo, $ {} env.PATH contiene la variable de entorno PATH.
Nota: Mientras que las variables de entorno en s son sensibles a maysculas en
Windows, las operaciones de bsqueda de propiedades entre maysculas y
minsculas. En otras palabras, mientras que el shell de Windows devuelve el mismo
Configuracin de creacin
Ms all de los conceptos bsicos del POM dado anteriormente, hay dos elementos ms
que deben ser entendidos antes de reclamar la competencia bsica del POM.Son
la acumulacin elemento, que se ocupa de cosas como la que se declara la estructura
de directorios de su proyecto y la gestin de plugins; y la presentacin de
informes elemento, que refleja en gran medida el elemento de construccin para los
informes.
Construir
De acuerdo con el XSD 4.0.0 POM, la acumulacin elemento se divide
conceptualmente en dos partes: hay una BaseBuild tipo que contiene el conjunto de
elementos comunes a ambos construir elementos (el elemento de construccin de alto
nivel bajo proyecto y el elemento de estructura inferior perfiles , cubierto a
continuacin); y no es el Build tipo, que contiene el BaseBuild establecido, as como
ms elementos para la definicin de nivel superior. Vamos a empezar con un anlisis de
los elementos comunes entre los dos.
Nota: Estos diferentes build elementos pueden denotarse "generacin de proyecto" y
"acumulacin perfil".
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
7.
8.
9.
<Perfiles>
10.
<Perfil>
11.
12.
13.
</ Profile>
14.
</ Perfiles>
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
<Crear>
6.
...
7.
<recursos>
8.
<Resource>
9.
10.
11.
12.
<Incluye>
13.
14.
</ Includes>
15.
<excluye>
16.
17.
18.
</ Excluye>
</ Resource>
19.
</ Recursos>
20.
<TestResources>
21.
...
22.
</ TestResources>
23.
...
24.
</ Construccin>
recursos : es una lista de los elementos de los recursos que describen cada uno qu y
dnde para incluir ficheros asociados a este proyecto.
targetPath : especifica la estructura de directorios para colocar el conjunto de recursos
de la que se acumulan. Orientar los valores predeterminados ruta de acceso al
directorio base. Una ruta de destino comnmente especificada por los recursos que
sern envasados en un frasco es META-INF.
Filtrado : es verdadera o falsa , denotando si el filtrado es para estar habilitado para
este recurso. Tenga en cuenta, que filtran * .properties archivos no tienen que ser
definidos para el filtrado de ocurrir - recursos tambin pueden utilizar las propiedades
que estn por defecto definido en el POM (por ejemplo, $ {} project.version), aprobada
en la lnea de comandos utilizando el bandera "D" (por ejemplo, " -dNOMBRE = valor ")
o se definen de manera explcita por el elemento de propiedades. Filtrar archivos
estaban cubiertas anteriormente.
directorio : el valor de este elemento define el lugar donde se encuentran los
recursos. El directorio por defecto para una generacin es $ {} basedir / src /
main / resources .
incluye : un conjunto de archivos patrones que especifican los archivos para incluir
como recursos correspondientes a ese directorio especificado, utilizando * como un
comodn.
excluye : La misma estructura que incluye , pero Especifica los archivos de
ignorar. En los conflictos entre incluir y excluir , excluir victorias.
testResources : El testResources bloque elemento
contiene testResource elementos. Sus definiciones son similares a los
recursos elementos, pero se utilizan de forma natural durante las fases de prueba. La
nica diferencia es que el directorio de recursos de prueba predeterminado (Super
POM definido) para un proyecto es $ {} basedir / src / test / recursos . Los
recursos de pruebas no se implementan.
plugins
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
<Crear>
6.
...
7.
<Plugins>
8.
<Plug-in>
9.
10.
11.
12.
13.
14.
<Configuration>
15.
16.
17.
18.
19.
</ Plugin>
20.
</ Plugins>
21.
</ Construccin>
<Elementos>
<item> padre-1 </ item>
<item> padre-2 </ item>
8.
</ Items>
9.
<propiedades>
10.
11.
<Elementos>
<item> nio-1 </ item>
20.
</ Items>
21.
<propiedades>
22.
23.
<Elementos>
<item> nio-1 </ item>
31.
</ Items>
32.
<propiedades>
33.
34.
35.
</ Properties>
Puede controlar cmo los POM secundarios heredan la configuracin a los POM
principal aadiendo atributos a los hijos de la configuracin del elemento. Los
atributos son combine.children y combine.self . Use estos atributos en un POM
nio para controlar la forma en Maven combina plugin de la configuracin de la
matriz con la configuracin explcita en el nio.
Esta es la configuracin de los nios con ilustraciones de los dos atributos:
37. <Configuration>
38.
<elementos
39.
40.
41.
</ Items>
42.
<propiedades
43.
44.
45.
</ Properties>
<elementos
49.
50.
51.
52.
</ Items>
53.
<propiedades
54.
55.
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<Crear>
7.
<Plugins>
8.
<Plug-in>
9.
10.
11.
<ejecuciones>
12.
<Ejecucin>
13.
14.
<objetivos>
15.
16.
</ Objetivos>
17.
18.
19.
<Configuration>
20.
<tareas>
21.
22.
</ tareas>
23.
</ Configuration>
24.
</ Ejecucin>
25.
</ Ejecuciones>
26.
27.
</ Plugin>
28.
</ Plugins>
29.
</ Construccin>
ID : explica por s misma. En l se especifica este bloque de ejecucin entre todos los
dems. Cuando se ejecuta la fase, que se mostrar en la forma: [plugin: meta de
objetivos : Al igual que todos los elementos POM pluralizado, este contiene una lista
de elementos singulares. En este caso, una lista de los plugins objetivos que estn
siendo establecidas en la presente ejecucin bloque.
fase : Esta es la fase que la lista de objetivos se ejecutar en Esta es una opcin muy
potente, que permite una para obligar a cualquier meta a cualquier fase del ciclo de
vida de construccin, alterando el comportamiento predeterminado de Maven..
heredada : Al igual que la heredada elemento anterior, el establecimiento de esta
falsa ser suprimir Maven desde la aprobacin de esta ejecucin a sus hijos. Este
elemento slo tiene sentido para los POM padres.
Configuracin : Igual que el anterior, pero se limita a la configuracin de esta lista
especfica de objetivos, en lugar de todos los objetivos en el marco del plugin.
Gestin Plugin
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<Crear>
7.
...
8.
<PluginManagement>
9.
10.
<Plugins>
<Plug-in>
11.
12.
13.
14.
<ejecuciones>
15.
<Ejecucin>
16.
17.
18.
<objetivos>
19.
20.
</ Objetivos>
21.
<Configuration>
22.
23.
</ Configuration>
24.
</ Ejecucin>
25.
</ Ejecuciones>
26.
</ Plugin>
27.
</ Plugins>
28.
</ PluginManagement>
29.
...
30.
</ Construccin>
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<Crear>
7.
...
8.
<Plugins>
9.
<Plug-in>
10.
11.
12.
13.
14.
15.
</ Plugin>
</ Plugins>
...
</ Construccin>
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<Crear>
7.
8.
9.
10.
11.
12.
13.
...
</ Construccin>
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<Crear>
7.
...
8.
<extensiones>
9.
<Extensin>
10.
11.
12.
13.
</ Extension>
14.
</ Extensiones>
15.
...
16.
</ Construccin>
informes
Reporting contiene los elementos que corresponden especficamente para el sitio
de fase de generacin. Ciertos plugins de Maven pueden generar informes definidos y
configurados bajo el elemento de informes, por ejemplo: la generacin de informes
Javadoc. Al igual que la capacidad del elemento de construccin para configurar los
plugins, la presentacin de informes comandos de la misma capacidad. La evidente
diferencia es que en lugar de un control detallado de los plug-in de objetivos dentro de
las ejecuciones bloquear, informes configura objetivos dentro reportSet elementos. Y la
diferencia sutil que es un plugin de configuracin bajo la presentacin de
informes elemento funciona como acumulacin plugin de configuracin , aunque el
contrario no es cierto (una acumulacin plugin deconfiguracin no afecta a
la presentacin de informes plug-in).
Posiblemente el nico elemento en la presentacin de informes elemento que no
sera familiar para alguien que entiende la acumulacin elemento es el
booleanas excludeDefaults elemento. Este elemento indica al generador de sitios para
excluir informes generados normalmente por defecto. Cuando un sitio se genera a travs
del sitio de ciclo de acumulacin, una Informacin del Proyecto seccin se coloca en
el men de la izquierda, hasta los topes de informes, tales como el Equipo de Proyecto
de informe o Dependencias informe de lista. Estos objetivos del informe son generados
por maven-proyecto-info-informes-plugin. Al ser un plugin como cualquier otro,
sino que tambin puede ser suprimida en el siguiente, ms prolija, camino, lo que
definitivamente desactiva el proyecto-INFO Reports.
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<Informes>
7.
8.
<Plugins>
9.
<Plug-in>
10.
11.
12.
<ReportSets>
13.
14.
15.
16.
</ Plugins>
17.
</ Informes>
18.
...
Conjuntos de informe
Es importante tener en cuenta que un plugin individuo puede tener mltiples
objetivos. Cada meta puede tener una configuracin independiente. Conjuntos de
informes configurar la ejecucin de los objetivos de un plugin informe. Le suena familiar
- deja-vu? Lo mismo se dijo acerca de la acumulacin de ejecucin elemento con una
diferencia: no puede enlazar un informe a otra fase. Lo siento.
Por ejemplo, suponga que desea configurar el javadoc: javadoc objetivo de vincular a
" http://java.sun.com/j2se/1.5.0/docs/api/ ", pero slo el javadoc objetivo (no el
objetivo maven- javadoc-plugin: tarro ). Tambin nos gustara que esta
configuracin hace pasar a sus hijos, y SET hered a la verdadera. El reportSet se
parecera a lo siguiente:
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<Informes>
7.
8.
<Plugins>
<Plug-in>
9.
...
10.
<ReportSets>
11.
<ReportSet>
12.
13.
<informes>
14.
15.
</ informes>
16.
17.
<Configuration>
18.
<enlaces>
19.
20.
21.
22.
23.
24.
25.
</ Plugins>
26.
</ Informes>
27.
...
licencias
1. <licencias>
2.
<Licencia>
3.
4.
5.
6.
7.
8. </ licencias>
Las licencias son documentos legales que definen cmo y cundo se pueden usar un
proyecto (o partes de un proyecto). Tenga en cuenta que un proyecto debe mostrar slo
las licencias que pueden aplicarse directamente a este proyecto, y no detallan licencias
que se aplican a las dependencias de este proyecto. Maven actualmente hace poco con
estos documentos que no sean los muestra en los sitios generados. Sin embargo, se
habla de flexin para los diferentes tipos de licencias, obligando a los usuarios a aceptar
acuerdos de licencia para ciertos tipos de proyectos (fuente no abierta).
nombre , url y comentarios : son explica por s mismo, y se han encontrado antes en
otras capacidades. El cuarto elemento es la licencia:
Distribucin : Esta describe cmo el proyecto puede ser distribuido legalmente. Los
dos mtodos son declarados repo (que se pueden descargar de un repositorio de
Maven) o manual (que se deben instalar manualmente).
Organizacin
La mayora de los proyectos estn a cargo de algn tipo de organizacin (empresa,
grupo privado, etc.). Aqu es donde se establece la informacin ms bsica.
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<Organizacin>
7.
8.
9.
</ Organizacin>
Desarrolladores
Todos los proyectos consisten en archivos que se crearon, en algn momento, por una
persona. Al igual que los otros sistemas que rodean a un proyecto, por lo que se pueden
hacer las personas involucradas en un proyecto de tener una participacin en el
proyecto. Los desarrolladores son presumiblemente miembros del ncleo de desarrollo
del proyecto. Tenga en cuenta que, a pesar de una organizacin puede tener muchos
desarrolladores (programadores) como miembros, no es buena forma para listar a todos
como desarrolladores, pero slo aquellos que son directamente responsables por el
cdigo. Una buena regla general es que si la persona no debe contactarse con el
proyecto, no ser necesario enumerar aqu.
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
6.
<desarrolladores>
7.
<Desarrollador>
8.
9.
10.
11.
12.
13.
14.
<funciones>
15.
16.
17.
</ Papeles>
18.
19.
<propiedades>
20.
21.
</ Properties>
22.
</ Desarrollador>
23.
</ Desarrolladores>
24.
...
colaboradores
Colaboradores son como los desarrolladores todava desempean un papel auxiliar en
el ciclo de vida de un proyecto. Tal vez el colaborador enva en una correccin de
errores, o se aade algo de documentacin importante. Un proyecto de cdigo abierto
sana es probable que tenga ms colaboradores que los desarrolladores.
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<colaboradores>
7.
<Colaborador>
8.
9.
10.
11.
12.
13.
<funciones>
14.
15.
</ Papeles>
16.
17.
<propiedades>
18.
19.
</ Properties>
20.
</ Colaborador>
21.
</ Colaboradores>
22.
...
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<IssueManagement>
7.
8.
9.
</ IssueManagement>
10.
...
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<CiManagement>
7.
8.
9.
<Notificadores>
10.
<Notificador>
11.
12.
13.
14.
15.
16.
17.
</ Notificador>
18.
</ Notificadores>
19.
</ CiManagement>
20.
...
Listas de correo
Las listas de correo son una gran herramienta para mantenerse en contacto con la gente
acerca de un proyecto. La mayora de las listas de correo son para los desarrolladores y
usuarios.
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<LISTASDECORREO>
7.
<Lista de correo>
8.
9.
10.
11.
12.
13.
<OtherArchives>
14.
15.
</ OtherArchives>
16.
17.
18.
...
SMC
SCM (Software Configuration Management, tambin llamado Cdigo fuente / Gestin de
control o, de manera sucinta, el control de versiones) es una parte integral de cualquier
proyecto saludable. Si su proyecto Maven utiliza un sistema de SCM (lo hace, no lo
hace?), Entonces aqu es donde se coloca la informacin en el POM.
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<SMC>
7.
8.
9.
10.
11.
</ Scm>
12.
...
etiqueta : especifica la etiqueta que este proyecto vive bajo. (Que significa cabeza, la
raz SMC) debe ser el predeterminado.
url : Un repositorio navegable pblicamente. Por ejemplo, a travs de ViewCVS.
Requisitos previos
El POM puede tener ciertos requisitos previos para poder ejecutar correctamente. Por
ejemplo, tal vez hubo un arreglo en Maven 2.0.3 que necesita con el fin de implementar
el uso de SFTP. Aqu es donde se aplica los requisitos previos a la construccin. Si
stas no se cumplen, Maven fallar la acumulacin incluso antes de empezar. El nico
elemento que existe como un requisito previo en POM 4.0 es el elemento experto, que
tiene un nmero de versin mnima.
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<requisitos previos>
7.
8.
9.
...
repositorios
Los repositorios son colecciones de artefactos que se adhieren a la estructura de
directorios del repositorio Maven. Con el fin de ser un repositorio de artefactos Maven,
un archivo POM debe vivir dentro de la estructura $ BASE_REPO / groupId /
artifactId / versin / artifactId-version.pom . $ BASE_REPO puede ser local
(estructura de archivos) o (URL base) a distancia; la disposicin restante ser el
mismo. Existen repositorios como un lugar para recoger y almacenar artefactos.Cada
vez que un proyecto tiene una dependencia de un artefacto, Maven primero intentar
utilizar una copia local del artefacto especificado. Si ese artefacto no existe en el
repositorio local, que entonces intentar descargar de un repositorio remoto. Los
elementos del repositorio dentro de un POM especifican los repositorios alternativos
para la bsqueda.
El repositorio es una de las caractersticas ms potentes de la comunidad Maven. El
repositorio central de Maven predeterminado vive
enhttps://repo.maven.apache.org/maven2/ . Otra fuente de artefactos todava no est en
Ibiblio es la Codehaus instantneas repo.
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<repositorios>
7.
8.
<Repositorio>
<comunicados>
9.
10.
11.
12.
</ Prensa>
13.
<Instantneas>
14.
15.
16.
17.
</ Instantneas>
18.
19.
20.
21.
22.
</ Repositorio>
23.
</ Repositorios>
24.
<PluginRepositories>
25.
...
26.
</ PluginRepositories>
27.
...
comunicados , instantneas : Estas son las polticas para cada tipo de artefacto, de
lanzamiento o una instantnea. Con estos dos conjuntos, un POM tiene el poder de
alterar las polticas para cada tipo independiente de la otra dentro de un mismo
repositorio. Por ejemplo, uno puede decidir habilitar slo las descargas instantneas,
posiblemente para fines de desarrollo.
permitido : verdadero o falso a si este repositorio est habilitado para el tipo
respectivo ( liberaciones o instantneas ).
updatePolicy : Este elemento especifica la frecuencia con actualizaciones deben
intentar que se produzca. Maven comparar marca de tiempo del POM local
(almacenada en el archivo maven-metadatos de un repositorio) para el mando a
distancia. Las opciones son: siempre , todos los das (por defecto),intervalo:
X (donde X es un nmero entero en minutos) o no .
checksumPolicy : Cuando Maven despliega archivos al repositorio, tambin despliega
archivos de control correspondientes. Sus opciones son para ignorar ,fallar ,
o avisar sobre las sumas de comprobacin que faltan o incorrectos.
diseo : En la descripcin anterior de repositorios, se mencion que todos ellos siguen
un diseo comn. Esto es sobre todo correcto. La disposicin introducida con Maven 2
es la disposicin por defecto para los repositorios utilizados por Maven ambos 2 y
3; Sin embargo, Maven 1.x tena un diseo diferente. Utilice este elemento para
especificar qu si es por defecto o legado .
repositorios de complementos
Los repositorios son el hogar de dos grandes tipos de artefactos. El primero son
artefactos que se utilizan como dependencias de otros artefactos. Estos son la mayora
de los plugins que residen en el centro. El otro tipo de artefacto es plugins. Plugins de
Maven son en s mismos un tipo especial de artefacto. Debido a esto, repositorios de
complementos pueden ser separados de otros repositorios (aunque, todava tengo que
escuchar un argumento convincente para hacerlo). En cualquier caso, la estructura de
la pluginRepositories bloque elemento es similar al elemento de
repositorios. Los pluginRepository elementos cada uno especifican una ubicacin
remota del lugar donde Maven puede encontrar nuevos plugins.
Gestin de la distribucin
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<DistributionManagement>
7.
...
8.
9.
10.
</ DistributionManagement>
11.
...
downloadURL : es la URL del repositorio de donde otra POM puede sealar el fin de
apoderarse de este artefacto POM. En los trminos ms simples, nos dijeron que el
POM cmo subirlo (a travs del repositorio / url), pero desde donde puede la descarga
pblica que? Este elemento responde a esa pregunta.
estado : Atencin! Como un pjaro de beb en un nido, el estado no debe ser tocado
por la mano del hombre! La razn de esto es que Maven establecer el estado del
proyecto, cuando se transporta a cabo en el repositorio. Sus tipos vlidos son los
siguientes.
Ninguno : Sin condicin especial. Este es el valor predeterminado para un POM.
convertido : El gestor del repositorio convierte este POM de una versin anterior a
Maven 2.
Compaero : Esto podra fcilmente haber sido llamado sincronizada. Esto
significa que este artefacto se ha sincronizado con un repositorio pareja.
desplegado : Con mucho, el estado ms comn, lo que significa que este
artefacto se despliega desde una instancia de Maven 2 o 3. Esto es lo que se
obtiene cuando se implementa de forma manual utilizando la fase de despliegue
de lnea de comandos.
verificado : Este proyecto ha sido verificado, y se debe considerar finalizado.
Repositorio
En caso de que el elemento de repositorios especifica en el POM la ubicacin y la forma
en la que Maven puede descargar artefactos remotos para su uso por el proyecto actual,
distributionManagement especifica dnde (y cmo) este proyecto se llega a un
repositorio remoto cuando est desplegada. Los elementos de depsito se utilizan para
la distribucin instantnea si el snapshotRepository no est definido.
1. <proyecto
2.
xmlns = "http://maven.apache.org/POM/4.0.0"
3.
4.
5.
...
6.
<DistributionManagement>
7.
<Repositorio>
8.
9.
10.
11.
12.
13.
</ Repositorio>
14.
<SnapshotRepository>
15.
16.
17.
18.
19.
20.
</ SnapshotRepository>
21.
...
22.
</ DistributionManagement>
23.
...
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<DistributionManagement>
7.
...
8.
<Sitio>
9.
10.
11.
12.
</ Site>
13.
...
14.
</ DistributionManagement>
15.
...
reubicacin
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<DistributionManagement>
7.
...
8.
<Reubicacin>
9.
10.
11.
12.
13.
14.
</ Reubicacin>
...
15.
</ DistributionManagement>
16.
...
Los proyectos no son estticas; que son seres vivos (o muriendo cosas, como sea el
caso). Una cosa comn que sucede a medida que crecen los proyectos, es que se ven
obligados a pasar a cuartos ms adecuados. Por ejemplo, cuando el proyecto de cdigo
abierto un gran xito junto mueve bajo el paraguas de Apache, que sera bueno para dar
a sus usuarios como el heads-up que el proyecto est siendo renombrado
a org.apache: mi-proyecto: 1.0 . Adems de especificar la nueva direccin, tambin
es una buena forma para proporcionar un mensaje que explica por qu.
perfiles
Una nueva caracterstica del POM 4.0 es la capacidad de un proyecto para cambiar los
ajustes en funcin del entorno en el que se est construyendo. Un perfilelemento
contiene tanto una activacin opcional (un disparador perfil) y el conjunto de cambios
que deban introducirse en el POM si ese perfil ha sido activado. Por ejemplo, un
proyecto construido para un entorno de prueba puede apuntar a una base de datos
diferente a la de la implantacin final. O dependencias pueden ser extradas de
diferentes repositorios basados en la versin del JDK utilizada. Los elementos de
perfiles son las siguientes:
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<Perfiles>
7.
<Perfil>
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
</ Profile>
</ Perfiles>
Activacin
Activaciones son la clave de un perfil. La potencia de un perfil proviene de su capacidad
de modificar el POM bsico slo bajo ciertas circunstancias. Estas circunstancias se
especifican a travs de una activacin del elemento.
1. <proyecto
xmlns = "http://maven.apache.org/POM/4.0.0"
2.
3.
4.
5.
...
6.
<Perfiles>
7.
<Perfil>
8.
9.
<Activacin>
10.
11.
12.
<Os>
13.
14.
15.
16.
17.
</ Os>
18.
<Propiedad>
19.
20.
21.
</ Property>
22.
<Archivo>
23.
24.
25.
26.
</ Activacin>
27.
...
28.
29.
</ Profile>
</ Perfiles>
Final
El POM Maven es grande. Sin embargo, su tamao es tambin una prueba de su
versatilidad. La capacidad de abstraer todos los aspectos de un proyecto en un solo
artefacto es de gran alcance, por decir lo menos. Atrs han quedado los das de de
scripts de construccin dispares y dispersos documentacin relativa a cada proyecto
individual docenas. Junto con otras estrellas de Maven que componen la galaxia Maven
- una acumulacin del ciclo de vida bien definido, fcil de escribir y mantener plugins,
repositorios centralizados, configuraciones de todo el sistema y basadas en el usuario,
as como el creciente nmero de herramientas para hacer los trabajos de los
desarrolladores ms fcil de mantener proyectos complejos - el POM es la grande, pero
brillante, centro.