Post on 28-Feb-2018
7/25/2019 Referencia POM
1/44
Referencia POM
1.
Introduccin
1.
Cul es e l POM?2.
vista rpida
2.
Los basicos
1.
Coordenadas Maven
2.
re laciones POM
1.
dependencias
1.
Especificacin de requisitos de dependencia Versin
2.
exclusiones
2.
Herencia
1.
El Super POM
2.
Ges tin de la dependencia3.
La agregacin (o de mltiples mdulos)
1.
. La he rencia 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 construccin1.
directorios
2.
extensiones
2.
informe s
1.
Conjuntos de informe
4.
Ms informacin sobre el proyecto
1.
licencias
2.
Organizacin
3.
Desarrolladores
4.
colaboradores
5.
Configuracin de l entorno1.
Gestin de Problemas
2.
Gestin de la Integracin Continua
3.
Listas de correo
4.
SMC
5.
Requis itos previos
6.
repositorios
7.
repositorios de complementos
8.
Gestin de la distribucin
1.
Repositorio
2.
Distribucin del sitio
3.
reubicacin
http://maven.apache.org/pom.html#Introductionhttp://maven.apache.org/pom.html#Introductionhttp://maven.apache.org/pom.html#What_is_the_POMhttp://maven.apache.org/pom.html#What_is_the_POMhttp://maven.apache.org/pom.html#Quick_Overviewhttp://maven.apache.org/pom.html#Quick_Overviewhttp://maven.apache.org/pom.html#The_Basicshttp://maven.apache.org/pom.html#The_Basicshttp://maven.apache.org/pom.html#Maven_Coordinateshttp://maven.apache.org/pom.html#Maven_Coordinateshttp://maven.apache.org/pom.html#POM_Relationshipshttp://maven.apache.org/pom.html#POM_Relationshipshttp://maven.apache.org/pom.html#Dependencieshttp://maven.apache.org/pom.html#Dependencieshttp://maven.apache.org/pom.html#Dependency_Version_Requirement_Specificationhttp://maven.apache.org/pom.html#Dependency_Version_Requirement_Specificationhttp://maven.apache.org/pom.html#Exclusionshttp://maven.apache.org/pom.html#Exclusionshttp://maven.apache.org/pom.html#Inheritancehttp://maven.apache.org/pom.html#Inheritancehttp://maven.apache.org/pom.html#The_Super_POMhttp://maven.apache.org/pom.html#The_Super_POMhttp://maven.apache.org/pom.html#Dependency_Managementhttp://maven.apache.org/pom.html#Dependency_Managementhttp://maven.apache.org/pom.html#Aggregationhttp://maven.apache.org/pom.html#Aggregationhttp://maven.apache.org/pom.html#Inheritance_vhttp://maven.apache.org/pom.html#Inheritance_vhttp://maven.apache.org/pom.html#Propertieshttp://maven.apache.org/pom.html#Propertieshttp://maven.apache.org/pom.html#Build_Settingshttp://maven.apache.org/pom.html#Build_Settingshttp://maven.apache.org/pom.html#Buildhttp://maven.apache.org/pom.html#Buildhttp://maven.apache.org/pom.html#BaseBuild_Elementhttp://maven.apache.org/pom.html#BaseBuild_Elementhttp://maven.apache.org/pom.html#Resourceshttp://maven.apache.org/pom.html#Resourceshttp://maven.apache.org/pom.html#Pluginshttp://maven.apache.org/pom.html#Pluginshttp://maven.apache.org/pom.html#Plugin_Managementhttp://maven.apache.org/pom.html#Plugin_Managementhttp://maven.apache.org/pom.html#Build_Elementhttp://maven.apache.org/pom.html#Build_Elementhttp://maven.apache.org/pom.html#Directorieshttp://maven.apache.org/pom.html#Directorieshttp://maven.apache.org/pom.html#Extensionshttp://maven.apache.org/pom.html#Extensionshttp://maven.apache.org/pom.html#Reportinghttp://maven.apache.org/pom.html#Reportinghttp://maven.apache.org/pom.html#Report_Setshttp://maven.apache.org/pom.html#Report_Setshttp://maven.apache.org/pom.html#More_Project_Informationhttp://maven.apache.org/pom.html#More_Project_Informationhttp://maven.apache.org/pom.html#Licenseshttp://maven.apache.org/pom.html#Licenseshttp://maven.apache.org/pom.html#Organizationhttp://maven.apache.org/pom.html#Organizationhttp://maven.apache.org/pom.html#Developershttp://maven.apache.org/pom.html#Developershttp://maven.apache.org/pom.html#Contributorshttp://maven.apache.org/pom.html#Contributorshttp://maven.apache.org/pom.html#Environment_Settingshttp://maven.apache.org/pom.html#Environment_Settingshttp://maven.apache.org/pom.html#Issue_Managementhttp://maven.apache.org/pom.html#Issue_Managementhttp://maven.apache.org/pom.html#Continuous_Integration_Managementhttp://maven.apache.org/pom.html#Continuous_Integration_Managementhttp://maven.apache.org/pom.html#Mailing_Listshttp://maven.apache.org/pom.html#Mailing_Listshttp://maven.apache.org/pom.html#SCMhttp://maven.apache.org/pom.html#SCMhttp://maven.apache.org/pom.html#Prerequisiteshttp://maven.apache.org/pom.html#Prerequisiteshttp://maven.apache.org/pom.html#Repositorieshttp://maven.apache.org/pom.html#Repositorieshttp://maven.apache.org/pom.html#Plugin_Repositorieshttp://maven.apache.org/pom.html#Plugin_Repositorieshttp://maven.apache.org/pom.html#Distribution_Managementhttp://maven.apache.org/pom.html#Distribution_Managementhttp://maven.apache.org/pom.html#Repositoryhttp://maven.apache.org/pom.html#Repositoryhttp://maven.apache.org/pom.html#Site_Distributionhttp://maven.apache.org/pom.html#Site_Distributionhttp://maven.apache.org/pom.html#Relocationhttp://maven.apache.org/pom.html#Relocationhttp://maven.apache.org/pom.html#Relocationhttp://maven.apache.org/pom.html#Site_Distributionhttp://maven.apache.org/pom.html#Repositoryhttp://maven.apache.org/pom.html#Distribution_Managementhttp://maven.apache.org/pom.html#Plugin_Repositorieshttp://maven.apache.org/pom.html#Repositorieshttp://maven.apache.org/pom.html#Prerequisiteshttp://maven.apache.org/pom.html#SCMhttp://maven.apache.org/pom.html#Mailing_Listshttp://maven.apache.org/pom.html#Continuous_Integration_Managementhttp://maven.apache.org/pom.html#Issue_Managementhttp://maven.apache.org/pom.html#Environment_Settingshttp://maven.apache.org/pom.html#Contributorshttp://maven.apache.org/pom.html#Developershttp://maven.apache.org/pom.html#Organizationhttp://maven.apache.org/pom.html#Licenseshttp://maven.apache.org/pom.html#More_Project_Informationhttp://maven.apache.org/pom.html#Report_Setshttp://maven.apache.org/pom.html#Reportinghttp://maven.apache.org/pom.html#Extensionshttp://maven.apache.org/pom.html#Directorieshttp://maven.apache.org/pom.html#Build_Elementhttp://maven.apache.org/pom.html#Plugin_Managementhttp://maven.apache.org/pom.html#Pluginshttp://maven.apache.org/pom.html#Resourceshttp://maven.apache.org/pom.html#BaseBuild_Elementhttp://maven.apache.org/pom.html#Buildhttp://maven.apache.org/pom.html#Build_Settingshttp://maven.apache.org/pom.html#Propertieshttp://maven.apache.org/pom.html#Inheritance_vhttp://maven.apache.org/pom.html#Aggregationhttp://maven.apache.org/pom.html#Dependency_Managementhttp://maven.apache.org/pom.html#The_Super_POMhttp://maven.apache.org/pom.html#Inheritancehttp://maven.apache.org/pom.html#Exclusionshttp://maven.apache.org/pom.html#Dependency_Version_Requirement_Specificationhttp://maven.apache.org/pom.html#Dependencieshttp://maven.apache.org/pom.html#POM_Relationshipshttp://maven.apache.org/pom.html#Maven_Coordinateshttp://maven.apache.org/pom.html#The_Basicshttp://maven.apache.org/pom.html#Quick_Overviewhttp://maven.apache.org/pom.html#What_is_the_POMhttp://maven.apache.org/pom.html#Introduction7/25/2019 Referencia POM
2/44
9.
perfiles
1.
Activacin
2.
El Bas eBuild Conjunto de Elementos (revisited)
6.
Final
Introduccin
El POM XSD 4.0.0 yre ferencia de l des criptor de la documentacin
Cul es el POM?
POM significa "Proye cto de Mode lo de obje tos". Es una representacin XML de un
proyecto Maven celebrada en un archivo denominado pom.xml. Cuando en presencia
de ge nte Maven, hablando de un proyecto que se habla e n e l se ntido filos fico, ms allde una mera coleccin de archivos que contienen cdigo. Un proyecto contiene archivos
de configuracin, as como los desarrolladores involucrados y las funciones que
des empean, e l sistema de seguimiento de defectos , la organizacin y lice ncias , la URL
de donde el proyecto vive, de pendencias del proyecto, y todas las otras piezas
pequeas que entran e n jugar para dar vida cdigo. Es una ventanilla nica para todo lo
relacionado con el proyecto. De hecho, en e l mundo de Maven, un proyecto no neces ita
contener ningn cdigo en absoluto, simplemente un pom.xml.
vista rpida
Esta es una lis ta de los e lementos directamente debajo de los e lementos de l proye cto
del POM. Observe que modelVersioncontiene 4.0.0. Esa es la versin actualmente
slo est soportado POM tanto para Maven 2 y 3, y siempre se requiere.
1.
5.
4.0.0
6.
7.
Los fundamentos
8.
...
9. ...
10.
...
11.
...
12. ...
13.
...
14.
...
15. ...
16.
...
17.
http://maven.apache.org/pom.html#Profileshttp://maven.apache.org/pom.html#Profileshttp://maven.apache.org/pom.html#Activationhttp://maven.apache.org/pom.html#Activationhttp://maven.apache.org/pom.html#The_BaseBuild_Element_Sethttp://maven.apache.org/pom.html#The_BaseBuild_Element_Sethttp://maven.apache.org/pom.html#The_BaseBuild_Element_Sethttp://maven.apache.org/pom.html#Finalhttp://maven.apache.org/pom.html#Finalhttp://maven.apache.org/xsd/maven-4.0.0.xsdhttp://maven.apache.org/xsd/maven-4.0.0.xsdhttp://maven.apache.org/ref/current/maven-model/maven.htmlhttp://maven.apache.org/ref/current/maven-model/maven.htmlhttp://maven.apache.org/ref/current/maven-model/maven.htmlhttp://maven.apache.org/ref/current/maven-model/maven.htmlhttp://maven.apache.org/xsd/maven-4.0.0.xsdhttp://maven.apache.org/pom.html#Finalhttp://maven.apache.org/pom.html#The_BaseBuild_Element_Sethttp://maven.apache.org/pom.html#Activationhttp://maven.apache.org/pom.html#Profiles7/25/2019 Referencia POM
3/44
18.
Configuracin de generacin
19.
...
20. ...
21.
22.
23.
...
24.
...
25.
...
26. ...
27.
...
28. ...
29.
...
30.
...
31.
32.
33.
...
34.
...
35. ...
36.
...
37. ...
38.
...
39.
...
40. ...
41.
...
42.
Los basicosEl 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,
e fectivame nte, la manifestacin de clarativa de l "quin", "qu"y "dnde ", mientras que e l
ciclo de vida de construccin e s e l "cundo" y "cmo". Es to no quiere decir que e l POM
no puede afectar al flujo del ciclo de vida - que puede . Por ejemplo, configurando
e l experto-antRun-plugin, s e puede integrar con e ficacia las tareas de hormigas en e l
interior del POM. En ltima instancia es una declaracin, sin embargo. Si, una
vez build.xmlle dice hormiga precisamente lo que hay que hace r cuando se ejecuta
(procedimiento), un POM establece su configuracin (declarativa). S i 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.xmlarchivo, donde las tareas son casi siempre depende de las lneas
e jecutadas antes de que.
1.
7/25/2019 Referencia POM
4/44
4.
http://maven.apache.org/xsd/maven-4.0.0.xsd " >
5.
4.0.0
6.
7.
org.codehaus.mojo
8.
mi-proyecto
9.
1.0
10.
Coordenadas Maven
El POM se ha definido anteriormente es el mnimo que tanto Maven 2 y 3 se lo
permita. GroupId: artifactId: Versinson 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 he rencia 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 s is tema de coordenadas para proyectos de Maven.
groupId: Esto generalmente es nico entre una organizacin o un proyecto. Por
ejemplo, todos los artefactos de ncleo Maven hacer (bueno, debe) vivir bajo el
org.apache .maven groupId. ID de grupo no utilizan ne ce sariame nte la notacin de
puntos , por ejemplo, el proye cto JUnit. Tenga en cue nta que la groupId dot-notated no
tiene que corresponder a la estructura de paquete que contiene el proyecto. Es, sin
embargo, una buena prctica a seguir. Cuando se almacena dentro de un repositorio,
el grupo acta muy parecido a la estructura de embalaje de Java hace en un sistema
ope rativo. Los puntos son reemplazados por utilizar separadores de directorios
especficos (tales como '/' en Unix) que se convierte en una estructura de directorios
relativa desde el repositorio de base. En el ejemplo dado, elorg.codehaus.mojogrupo
vive dentro del directorio $ M2_REPO / org / Codehaus / mojo.
artifactId: El artifactId generalmente es el nombre que el proyecto es conocido
por. Aunque el groupId es importante, las personas dentro del grupo rara vez
mencionan la groupId en la discusin (que son a menudo todo ser el mismo ID, como
elCodehaus Mojoproye cto groupId: org.codehaus.mojo). Es, junto con el groupId,
crear una clave que separa a este proyecto de cualquier otro proyecto en el mundo (al
menos, debera :)). Junto con el groupId, el artifactId define totalmente la vivienda del
artefacto dentro del repositorio. En el caso del proyecto anterior, mi proyectovive
en $ M2_REPO / org / Codehaus / mojo / mi-proyecto.
Versin:. Esta e s la ltima pieza de l rompecabezas de nombres groupId:
artifactIddenotan un proyecto, pero no se puede delimitar el que la encarnacin de
es e proyecto que es tamos hablando. Queremos que el junit: junitde hoy
(vers in 4), o de hace cuatro aos (vers in 2)? En resumen: los cambios de cdigo, los
cambios deben ser vers ionadas, y es te e leme nto mantiene es as vers iones en
lnea. Tambin se utiliza en el repositorio de un artefacto para separar unas de otras
versiones. Mi-proyecto dela versin 1.0 archivos viven en la estructura de
directorios $ M2_REPO / org / Codehaus / mojo / mi-proyecto / 1.0 .
http://mojo.codehaus.org/http://mojo.codehaus.org/http://mojo.codehaus.org/http://mojo.codehaus.org/7/25/2019 Referencia POM
5/44
Los tres e lementos mencionados anteriormente apuntan a una vers in e specfica de
un dejar Maven proyecto sabe quenos ocupa, y cuandoe n su ciclo de vida del
software de las queremos.
envasado: Ahora que tenemos nues tra e structura de direccin de l groupId:
artifactId: versin, hay una etiqueta estndar ms para darnos una direccin
realmente completo. Es decir tipo de artefacto del proyecto. En nuestro caso, el POM
ejemplo para org.codehaus.mojo: mi-proyecto: 1.0de finido anteriormente se
empaqueta como un tarro. Podramos convertirlo en una guerrapor la que se
declara un empaquetado diferente :
1.
5.
...
6.
guerra
7. ...
8.
Cuando se declara ningn embalaje, Maven asume el artefacto es el valor por
defecto: tarro. Los tipos vlidos son del plexo role-pis tas (lea ms en Plexus para
una explicacin de la participacin y la representacin de consejos) de la funcin
componente org.apache.maven.lifecycle.mapping.LifecycleMapping .Los
valores centrales de envasado actuales son: pom, tarro, experto-
plugin, EJB, la guerra, el odo, rar, par. Estos definen la listapredeterminada de los objetivos que se ejecutan para cada etapa del ciclo de vida
de construccin correspondiente para una e structura de paquete en particular.
Va a ver a veces la impresin de Maven a cabo coordinar un proyecto
como groupId: artifactId: embalaje: versin.
clasificador: De vez en cuando puede encontrar un quinto elemento en la
coordenada, y que e s e l clasificador. Vamos a visitar el clasificador ms adelante,
pero por ahora e s suficiente con s aber que e ste tipo de proyectos se mues tran
como groupId: artifactId: embalaje: clasificador: versin.
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 ). Ges tin de la dependencia tiene una larga
tradicin de ser un lo complicado para nada pero e l ms trivial de los
proyectos."Jarmageddon"rpidamente sobreviene como e l rbol de de pendencias se
hace grande y complicado. "Jar Hell"s igue, donde las vers iones de depe ndencias de un
sistema no son equivalentes a versiones como los desarrollados con, ya sea por laversin incorrecta dado, o versiones en conflicto entre tarros con nombres
7/25/2019 Referencia POM
6/44
similares.Maven resuelve ambos problemas a travs de un repositorio local comn de
partida para proyectos de vinculacin correctamente, versiones y todos.
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
enlace s para las dependencias que e n 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 depe ndencias de s u proyecto requiere.
1.
5. ...
6.
7.
8.
JUnit
9.
JUnit
10. 4.0
11.
tarro
12.
prueba
13.
verdadera 14.
15.
...
16.
17.
...
18.
groupId, artifactId, versin:
Usted ver estos elementos a menudo. Esta trinidad se utiliza para calcular el Maven
de coordenadas de un proyecto e specfico en e l tiempo, la de marcacin como una
dependencia de este proyecto. El propsito de este clculo e s seleccionar una vers inque coincide con todas las declaraciones de dependencias (debido a las dependencias
transitivas, puede haber mltiples declaraciones de dependencias para el mismo
artefacto). Los valores deben ser:
groupId, artifactId: directamente las correspondientes coordenadas de la
dependencia,
Versin : una especificacin de requisitos versin de la dependencia, que se
utilizar para calcular la versin e fectiva de la depende ncia.
Dado que la dependencia e s des crito por las coordenadas Maven, usted puede e star
pensando: "! Esto significa que mi proye cto slo puede depe nder de artefactosMaven"La respuesta e s: "Por supues to, pero e so e s una buena cos a."Esto obliga a
7/25/2019 Referencia POM
7/44
depender nicame nte de dependencias que Maven puede gestionar. Hay veces , por
des gracia, cuando un proyecto no se puede des cargar desde e l 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 hace r frente a es te esce nario.
3.
Instalar la depende ncia a nivel local utilizando e l plugin instalar. El mtodo es e l
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 e l plugin de instalacin crear un POM para us ted
con la direccin dada.
4.
Crear su propio repos itorio y de splegar all. Este es un mtodo preferido para las
empresas con intranet y la nece s idad de s er capaz de mantener a todos en
s incrona. Hay una me ta Mave n llamada despliegue: desplegar-archivoque
es similar a la instalacin: instalar-archivometa (lea la pgina del objetivo
de la extensin para ms informacin).
5.
Establecer el mbito de la dependencia del sistemay de finir
un systemPath. Esto no s e recomienda, s in embargo, s ino 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
es t presente - se aade al nombre de artefacto justo des pus del nmero de vers in.
Como motivacin para este elemento, tenga en cuenta, por ejemplo, un proyecto
que ofrece un artefacto de orientacin JRE 1.5, pero a l mismo tiempo tambin un
artefacto que todava apoya JRE 1.4 . El primer artefacto podra e star equipado con
el clasificador jdk15y el se gundo con jdk14de 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 de l proyecto. S i navega el repos itorio
ce ntral de Maven, se dar cuenta de que los clasificadores de
fuentesy javadocs e utilizan para implementar el cdigo fuente del proye cto y la
documentacin de la API, junto con los archivos de c lase envasados .
Tipo:
Se corresponde con el artefacto depende de envasestipo. 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-
7/25/2019 Referencia POM
8/44
clientey la prueba de jarra. Los nuevos tipos pueden ser definidos por los plugins
que es tablecen las extensionesde verdad, as que esto no es una lista completa.
alcance:
Este e leme nto se refiere a la ruta de clase de la tarea e n cues tin (compilacin y
tiempo de ejecucin, pruebas , e tc.), as como la mane ra de limitar la trans itividad de
una dependencia. Hay cinco mbitos disponibles:
compilar- e s te es e l mbito predeterminado, utiliza s i 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 e s para s u ejecucin. Es en las rutas de c las es 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 e st disponible para las fases de compilacin y e jecucin
de pruebas. No es transitivo.
sistema- este alcance es similar al proporcionadoa excepcin de que tiene que
proporcionar el archivo JAR que contiene explcitame nte . El artefacto e st s iempre
disponible y no se busca en un repositorio.
systemPath:
se utiliza solamentes i la dependencia del mbito de aplicacine s el
sistema. De lo contrario, la construccin fallar si se establece este elemento. La ruta
debe ser absoluta, por lo que se recomienda e l uso de una propiedad para e specificar
la ruta especfica de la mquina (ms sobre las propiedadessiguientes), como $ {}
java.home / lib. Ya que s e supone que las dependencias de a lcance del sis tema
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 Bpara compilar una porcin de cdigo que no se puede utilizar en tiempo de
ejecucin, a continuacin, puede que no tengamos necesidad de proyecto Bpara todoel proyecto. As que si el proyecto Xaade proyecto Uncomo s u propia de pendencia,
entonce s Maven no es nece sario instalar e l proyecto Ben abs oluto.S imblicame nte ,
s i =>representa una dependencia requerida, y ->representa opcional, aunque A =>
Bpuede ser el cas o cuando la construccin de A X => A -> Bs era e l caso cuando la
construccin de X.
En los trminos ms cortos, opcionalpermite que otros proyectos saben que ,
cuando se utiliza e ste proyecto, us ted no nece s ita e s ta de pendencia con e l fin de
funcionar correctamente.
Especificacin de requisitos de dependencia Versin
7/25/2019 Referencia POM
9/44
Dependencias ' versinelemento de definir los requisitos de versin, que se utiliza para
calcular la versin efectiva dependencia. Requisitos de versin tienen la siguiente
sintaxis:
1.0: Requis ito de "suave"en la 1 .0 (slo una recomendacin, s i coincide con todos los
otros rangos de la dependencia)
[1.0]: requisito de "duro"en la 1.0
(, 1,0]: x
5.
...
6.
7.
8.
org.apache.maven
9. maven-embedder
10.
2.0
11.
12.
13.
org.apache.maven
14.
maven-ncleo
15.
16.
17.
18. ...
19.
20.
...
21.
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 e xcluye comodn
7/25/2019 Referencia POM
10/44
hace que sea fcil de excluir todas las dependencias trans itivas de una de pendencia. En
e l caso de abajo us ted puede estar trabajando con e l experto-embedder y des ea
administrar las dependencias que utiliza a s mismo, por lo que recorte todas las
dependencias transitivas:
1.
5. ...
6.
7.
8. org.apache.maven
9.
maven-embedder
10.
3.1.0
11.
12.
13.
*
14. *
15.
16.
17.
18.
...
19.
20.
...21.
exclusiones: Exclusiones contiene n uno o ms de exclusine lementos , que
contiene cada uno un groupIdy artifactIddenota una dependencia excluir. A
diferencia opcional, que puede o no ser instalado y utilizado, exclusioneseliminan
activamente desde el rbol de dependencias.
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
s in duda puede ser s imulado, Maven ha ido un paso ms en la toma de la herencia
proyecto explcita al modelo de objeto de proyecto.
1.
5.
4.0.0
6.
7.
org.codehaus.mojo
7/25/2019 Referencia POM
11/44
8.
mi-padre
9.
2.0
10. POM
11.
El envasadotipo requerido para ser pomde los padresy de agregacin deproyectos
(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 e l paquete defase s e
e jecutar e l tarro: Tarro demeta. Si el envase e s 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
lis tas de plugin
listas de informes
ejecuciones de complementos con los identificadores de bsqueda
configuracin del plugin
1.
5.
4.0.0 6.
7.
8.
org.codehaus.mojo
9. mi-padre
10.
2.0
11.
../my-parent
12.
13.
14.
mi-proyecto
15.
Ntese la relativePathe lemento. No e s nece sario, pero puede ser utilizado como un
significante de Mave n para buscar primero la ruta dada por los padres de este proye cto,
antes de buscar en los repos itorios locales y remotos .
Para ver la herencia en la accin, simplemente echar un vistazo a
laASFoMavenmatriz de POM.
El Super POM
Al igual que en la herencia de los objetos en la programacin orientada a objetos, que se
extienden POM POM uno de los padres heredan ciertos valores de ese padre .Adems ,
https://svn.apache.org/viewvc/maven/pom/trunk/asf/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/pom/trunk/asf/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/pom/trunk/asf/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/pom/trunk/maven/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/pom/trunk/maven/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/pom/trunk/maven/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/pom/trunk/maven/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/pom/trunk/asf/pom.xml?view=markup7/25/2019 Referencia POM
12/44
as como objetos Java e n ltima instancia hereda de java.lang.Object, todos los
modelos de proyectos de obje tos heredan de una base de S uper POM. El s iguiente
fragmento es el Super POM para Maven 3.0.4.
1.
2.
4.0.0
3.
4.
5.
6. Central
7.
Repositorio Central
8.
http://repo.maven.apache.org/maven2
9. default
10.
11.
false
12.
13.
14.
15.
16.
17.
18. Central
19.
Repositorio Central
20.
http://repo.maven.apache.org/maven2
21.
default 22.
23.
false
24.
25.
26.
no
27.
28.
29.
30.
31.
32. $ {} project.basedir / destino
33.
$ {} project.build.directory / clases
34. $ {} project.artifactId - $ {} project.version
35.
$ {} project.build.directory / test-clases
36.
$ {} project.basedir / src / main / java
37.
src / main / scripts
7/25/2019 Referencia POM
13/44
38.
$ {} project.basedir / src / test / java
39.
40.
41.
$ {} project.basedir / src / main / resources
42.
43.
44.
45.
46. $ {} project.basedir / src / test / recursos
47.
48.
49.
50.
el POM sper ->
51.
l conflicto con las asignaciones del ciclo de vida (MNG-4453) ->
52.
53.
54.
maven-antRun-plugin
55. 1.3
56.
57.
58. maven-plugin-ensamblaje
59.
2.2-beta-5
60.
61.
62.
maven-dependencia-plugin
63.
2.1
64.
65.
66. maven-plugin de liberacin
67.
2.0 68.
69.
70.
71.
72.
73.
74.
$ {} project.build.directory / sitio
75.
76.
77.
7/25/2019 Referencia POM
14/44
78.
ones del POM sper ->
79.
80.
liberar perfil
81.
82.
83.
84.
performRelease
85. verdadera
86.
87.
88.
89.
90.
91.
92.
verdadera
93.
maven-fuente-plugin
94.
95.
96. adjuntar-sources
97.
98.
tarro
99.
100.
101.
102.
103.
104.
verdadera
105. maven-javadoc-plugin
106.
107.
108. attach-javadocs
109.
110. tarro
111.
112.
113.
114.
115.
116.
verdadera
117. maven-plugin de implementar
118.
119. verdadera
120.
121.
122.
7/25/2019 Referencia POM
15/44
123.
124.
125.
126.
127.
Puede e char un vis tazo a cmo e l Sper POM afecta a s u proyecto de modelo de
objetos mediante la creacin de un mnimo pom.xmly ejecutar en la lnea de
comandos: ayuda mvn: efectivo-pom
Gestin de la dependencia
Adems de heredar ciertos e lementos de nivel superior, los padres tienen e lementos
para configurar los valores de los POM nio y dependencias transitivas. Uno de esos
elementos e s DependencyManagement.
DependencyManagement: es utilizado por los POM para ayudar a manejar la
informacin de de pendencia a travs de todos sus hijos . S i el mi-padreproyecto
utiliza DependencyManagementpara de finir una dependencia de junit: junit: 4.0,
a continuacin, los POM que hereda de ste puede e stablece r su dependencia dando
la groupId= junity artifactId= junitsolamente , entonce s Maven llenar e n
e l versinestablecida por el padre. Los beneficios de este mtodo son
evidentes . Detalles de de pendencia se pueden e stablece r en una ubicacin ce ntral,
que s e propagar a todos los POM que heredan.
Tenga e n cuenta que la ve rs in y e l alcance de los artefactos que s e incorporan de
dependencias transitivas tambin son controlados por especificaciones de la versin
de una seccin de gestin de la dependencia. Esto puede conducir a consecuencias
ines peradas . Consideremos un caso e n el que el proyecto utiliza dos
dependencias, DEP1y DEP2. DEP2a su vez tambin utiliza DEP1, y requiere una
versin mnima determinada para funcionar. Si a continuacin,
utilizaDependencyManagementpara especificar una versin ms antigua, DEP2s e
ver obligado a utilizar la versin anterior, y no. Por lo tanto, debe tener cuidado de
comprobar todo el rbol de dependencias para evitar este problema, la
dependencia mvn: rboles til.
La agregacin(o de mltiples mdulos)
Un proyecto con mdulos se conoce como un multimdulo, o proyecto agregador. Los
mdulos son los proyectos que enumera este POM, y se ejecutan como un
grupo.Un pomproyecto de envasado puede agregar la acumulacin de un conjunto de
proyectos, mediante su inclusin como mdulos , que son directorios relativos a e sos
proyectos.
1.
7/25/2019 Referencia POM
16/44
5.
4.0.0
6.
7. org.codehaus.mojo
8.
mi-padre
9.
2.0
10.
POM
11.
12.
13. mi-proyecto
14.
otro proyecto
15.
16.
No e s nece sario tener en cuenta la interrelacin de dependencias de mdulos a s
mismo cuando se enumeran los mdulos , e s decir, e l orden de los mdulos propues tospor e l POM no e s importante. Maven topolgicame nte clas ificar los mdulos de tal
manera que siempre se construyen dependencias antes de los mdulos dependientes.
Para ver la agregacin en accin, slo e char un vis tazo en elMavenoMaven Core
plugins POM de base de.
Una nota final sobre la herencia v. Agregacin
La herencia y agregacin crean un agradable dinmico para controlar cons truye a trav s
de una sola, POM de alto nivel. Es frecuente encontrar que los proyectos que son los
padres y los agregadores. Por ejemplo, todo el ncleo experto corre a travs de una
nica base de POMorg.apache.maven: experto, por lo que la construccin de l
proyecto Maven puede ser ejecutado por un solo comando: compilacin MVN. S in
embargo, aunque ambos proyectos POM, un proyecto agregador y un proyecto de
matriz no son uno en el mismo y no deben confundirse. Un proyecto POM puede ser
heredada de - pero no nece sariamente - los mdulos que agregados . Por e l contrario, un
proyecto POM puede agregar proyectos que no heredan de ella.
propiedades
Las propiedades son la ltima pieza ne cesaria e n la comprensin de conceptos bs icos
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 Xes la propiedad.
Vienen en cinco estilos diferentes:
1.
env.X: pre fijar una variable con "env". volver variable de entorno de la cscara. Por
ejemplo, $ {} env.PATHcontiene la variable de entorno PATH.
Nota:Mientras que las variables de e ntorno en s son se nsibles a maysculas en
Windows, las operaciones de bsqueda de propiedades entre maysculas yminsculas. En otras palabras, mientras que el shell de Windows devuelve el mismo
https://svn.apache.org/viewvc/maven/maven-3/trunk/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/maven-3/trunk/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/maven-3/trunk/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/plugins/trunk/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/plugins/trunk/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/plugins/trunk/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/plugins/trunk/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/maven-3/trunk/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/maven-3/trunk/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/maven-3/trunk/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/maven-3/trunk/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/plugins/trunk/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/plugins/trunk/pom.xml?view=markuphttps://svn.apache.org/viewvc/maven/maven-3/trunk/pom.xml?view=markup7/25/2019 Referencia POM
17/44
valor para % PATH%y % Path%, Maven distingue entre $ {} env.PATHy $ {}
env.Path. A partir de Maven 2.1.0, los nombres de las variables de entorno se
normalizan a toda maysculaen aras de la fiabilidad.
2.
project.x: (.) Un punto ruta anotada en e l POM contendr el valor del e lemento
correspondiente . Por ejemplo: 1.0 es accesible a travs de $ {} project.version.
3.
settings.x: (.) Un punto ruta anotada en el settings.xmlcontendr el valor del
elemento correspondiente. Por ejemplo: false es accesible a travs de $ {} settings.offline.
4.
Propiedades del sistema Java: Todas las propiedades accesibles a travs
de java.lang.System.getProperties ()e s tn disponibles como propiedades POM,
como $ {} java.home.
5.
x: Ubicado en un elemento en el POM. El valor de
valor puede ser utilizado como $ {}
somevar.
Configuracin de creacinMs all de los conce ptos bs icos del POM dado anteriormente , hay dos e lementos ms
que deben s er entendidos antes de reclamar la competencia bsica del POM.Son
la acumulacinelemento, 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
informeselemento, que refleja en gran medida el elemento de construccin para los
informes.
Construir
De acuerdo con e l XSD 4.0.0 POM, la acumulacinelemento se divide
conce ptualmente en dos partes: hay una BaseBuildtipo que contiene el conjunto de
elementos comunes a ambos construire lementos (e l elemento de construccin de alto
nivel bajo proyectoy el elemento de estructura inferior perfiles, cubierto a
continuacin); y no es el Buildtipo, que contiene el BaseBuilde s tablec ido, 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.
5. ...
6.
7/25/2019 Referencia POM
18/44
7.
...
8.
9.
10.
11.
12.
...
13.
14.
15.
El elemento BaseBuildConjunto
BaseBuildes exactamente como suena: el conjunto bsico de elementos entre las
dos acumulacioneselementos en el POM.
instalar
$ {} basedir / destino
$ {} artifactId - $ {version}
filtros / filter1.properties
...
defaultGoal: el objetivo predeterminado o fase de ejecutar si no se da ninguno. Si se
da una meta, es necesario definir lo que est en la lnea de comandos (como eltarro:
Tarro). Lo mismo ocurre con si una fase est definida (como instalar).
Directorio: Este es el directorio donde la acumulacin volcar sus archivos o, en la
jerga de Mave n, e l obje tivo de la cons truccin. Ace rtadame nte por defec to $ {}
basedir / diana. finalName: Este es el nombre del proyecto liado cuando finalmente se construy
(sans la extensin del archivo, por ejemplo: mi-proyecto-1.0.jar). S u valor
predeterminado es $ {} artifactId - $ {version}. El trmino "finalName "e s una
especie de un trmino e quivocado, s in embargo, como plugins que cons truyen e l
proyecto liado tienen todo el derecho a ignorar / modificar este nombre (pero por lo
ge neral no lo hace n). Por ejemplo, s i el experto-jar-pluginest configurado para
dar un frasco de un clasificadorde prueba, e ntonce s e l frasco real se ha definido
anteriormente se construir como mi-proyecto-1,0-test.jar.
Filtro: Define * .propertiesarchivos que contienen una lis ta de propiedades que s e
aplican a los recursos que acepten sus ajustes (cubiertas ms abajo). En otraspalabras, el "nombre = valor"pares definidos dentro de los archivos de filtro
7/25/2019 Referencia POM
19/44
7/25/2019 Referencia POM
20/44
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: es pec ifica la e s tructura de directorios para colocar e l 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 verdaderao falsa, denotando si el filtrado es para estar habilitado para
este recurso. Tenga en cuenta, que filtran * .propertiesarchivos no tienen que ser
definidos para el filtrado de ocurrir - recursos tambin pueden utilizar las propiedades
que estn por defecto definido e n e l POM (por ejemplo, $ {} project.vers ion), aprobada
en la lnea de comandos utilizando e l 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 e lemento de fine e l lugar donde s e 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 incluiry excluir, excluirvictorias.
testResources: El testResourcesbloque e leme nto
contiene testResourceelementos. Sus definiciones son similares a los
recursoselementos, pero se utilizan de forma natural durante las fases de prueba. La
nica diferencia es que el directorio de recursos de prueba predeterminado (Supe r
POM definido) para un proyecto es $ {} basedir / src / test / recursos . Los
recursos de pruebas no se implementan.
plugins
1.
5.
6.
...
7.
8.
9.
org.apache.maven.plugins
10.
maven-jar-plugin
11.
2.6
12. false
13.
verdadera
14.
15.
prueba 16.
7/25/2019 Referencia POM
21/44
17.
...
18.
...
19.
20.
21.
22.
Ms all de la norma de coordenadas de groupId: artifactId: versin, hay
elementos que configuran el plugin o esto construye la interaccin con l.
extensiones: verdaderaso falsas, ya sea o no para cargar las extens iones de e ste
plugin. Es por falsa predeterminado. Las extensiones se tratan ms adelante en este
documento.
hered: verdaderoo falso, si esta configuracin del plugin debe aplicarse a los
POM, que heredan de ste . El valor por defecto e s cierto.
configuracin: Esto es especfico para el plugin individual. Sin ir ms a fondo en la
mecnica de cmo funcionan los plugins, basta con decir que todo lo que el plugin
propiedades Mojo puede esperar (es tos son los captadores y definidores en el bean
Java Mojo) se puede especificar aqu. En el ejemplo anterior, estamos estableciendo la
propiedad clasificador para probar en el experto-jar-pluginMojo 's. Puede ser
bueno tener en cuenta que todos los e leme ntos de configuracin, donde quiera que se
encuentren dentro del POM, tienen la intencin de pasar valores a otro sistema
subyacente, como un plugin. En otras palabras: los valores dentro de
una configuracin dee lemento no se requiere explcitamente por e l es quema de
POM, pero un gol plugin tiene todo el derecho a e xigir los valores de configuracin.
S i el POM dec lara un padre , he redar la configuracin de l complemento de
cualquiera de las build / pluginso pluginManagement s ecciones de la matriz.
Como ejemplo, consideremos el siguiente fragmento de un POM padres:
1.
2. my.group
3.
mi-plugin
4.
5.
6.
padre-1
7.
padre-2
8.
9.
10.
padres
11.
12.
13.
7/25/2019 Referencia POM
22/44
Y cons iderar la s iguiente configuracin de l complemento de un proye cto que utiliza
ese padre como su padre:
14.
15. my.group
16.
mi-plugin
17.
18.
19.
nio-1
20.
21.
22.
nio
23.
24.
El comportamiento por defecto e s la de integrar el contenido de la configuracin
del elemento de acuerdo a nombre del elemento. Si el nio POM tiene un elemento
en particular, que e l valor se convierte en e l valor efectivo. s i el nio POM no tiene
un eleme nto, pero e l padre lo hace , e l valor de los padres se convierte en e l valor
efectivo. Tenga en cuenta que esto es puramente una operacin en XML; ningn
cdigo o configuracin del propio plugin est involucrado. Slo los elementos, no sus
valores, estn involucrados.
La aplicacin de estas reglas para el ejemplo, Maven viene con:
25.
26.
my.group
27. mi-plugin
28.
29.
30. nio-1
31.
32.
33.
nio
34.
padres
35.
36.
Puede controlar cmo los POM secundarios heredan la configuracin a los POM
principal aadiendo atributos a los hijos de la configuracin delelemento. Los
atributos son combine.childreny 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.
7/25/2019 Referencia POM
23/44
38.
39.
40. nio-1
41.
42.
43.
44.
nio
45.
46.
Ahora, el resultado efectivo es el siguiente:
47.
48.
49.
padre-1 50. padre-2
51.
nio-1
52.
53.
54.
nio
55.
56.
combine.children = "Aadir" da como resultado la concatenacin de e lementos
primarios y s ecundarios , e n e se orden. combine.self = "override" , por otro lado,suprime por completo la configuracin de los padres . No se puede utilizar tanto en
tanto combine.self = "anular"y combine.children = "aadir" en un elemento;si se
intenta, anulacinprevalecer.
Tenga e n cuenta que estos atributos slo s e aplican al elemento de configuracin
que se declaran en, y no se propagan a los e lementos anidados . Esto es , s i el
contenido de un elementoe lemento de l nio POM era una estructura compleja e n
lugar de texto, s us sub-eleme ntos tambin estara s uje to a la e s trategia de
combinacin por defecto a menos que ellos mismos eran marcados con atributos.
Los atributos se combinan. * Se heredan de padres a los POM nio. Tenga cuidadoal aadir los atributos de un POM padres ya que esto podra afectar a los nios o de
cola en el nio POM.
Dependencias: Las dependencias se ven mucho en el POM, y son un elemento en
virtud de todos los bloques de e leme ntos de plugins. Las dependencias tienen la
misma estructura y funcin que en virtud de dicha construccin base. La principal
diferencia e n es te cas o e s que e n lugar de aplicar como dependencias del proyecto,
que ahora s e aplican como dependencias del plugin que estn bajo. El poder de esta
funcin es modificar la lista de dependencias de un plugin, tal vez mediante la
eliminacin de una dependencia de tiempo de e jecucin no us ado a
7/25/2019 Referencia POM
24/44
travs exclusiones, o mediante la alteracin de la versin de un dpendency
requerido. Vase e l epgrafe Dependenciaspara ms informacin.
ejecuciones: Es importante tener en cuenta que un plugin puede tener varios
objetivos. Cada meta puede tener una configuracin separada, posiblemente, incluso
la unin me ta de un plugin para una fas e diferente en
conjunto. Ejecucionesconfigurar la ejecucinde los objetivos de un plugin.
Por ejemplo, suponga que de sea vincular a la antRun: correrpeligro
al verificarfase . Queremos que la tarea de echo e l directorio de cons truccin, as
como evitar la transmisin de esta configuracin a sus hijos (asumiendo que es un
padre) e s tableciendo heredadade falsa. Se podra obtener una ejecucin dela
siguiente manera:
1.
5.
...
6.
7.
8.
9.
maven-antRun-plugin
10.
1.1
11.
12.
13.
echodir
14.
15.
ejecutar
16.
17. verificar
18.
false
19.
20.
21.
Construir Dir: $ {} project.build.directory 22.
23.
24.
25.
26.
27.
28.
29.
30.
ID: explica por s misma. En l se especifica es te bloque de e jecucin entre todos losdems . Cuando s e ejecuta la fas e , que s e mos trar e n la forma: [plugin: meta de
7/25/2019 Referencia POM
25/44
ejecucin: id]. En el caso de este ejemplo: [antRun: ejecutar de ejecucin:
echodir]
objetivos : Al igual que todos los elementos POM pluralizado, este contiene una lista
de elementos singulares. En este caso, una lista de los plugins objetivosque estn
s iendo e stablec idas en la presente ejecucinbloque.
fase: Esta e s la fase que la lis ta de obje tivos se ejecutar e n Esta es una opcin muy
potente, que permite una para obligar a cualquier meta a cualquier fas e del ciclo de
vida de construccin, alterando el comportamiento predeterminado de Mave n..
heredada: Al igual que la heredadaelemento anterior, el establecimiento de esta
falsa ser s uprimir Maven des de la aprobacin de e sta e jecucin a sus hijos . Es te
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
pluginManagement : e s un elemento que s e ve a lo largo plugins
secundarios. Gestin Plugin contiene elementos de plugin en la misma forma, excepto
que en lugar de configurar plugin de informacin para este particular, generacin de
proyecto, se pretende configurar proyecto se basa e n que hereda de ste . S in
embargo, e s to s lo se configura plugins que en realidad se hace referencia e n el
e lemento de plugins en los nios. Los nios tienen todo e l derecho de
anular pluginManagementdefiniciones.
1.
5. ...
6.
7.
...
8.
9.
10.
11.
org.apache.maven.plugins 12.
maven-jar-plugin
13.
2.6
14.
15.
16.
pre-proceso-clases
17. compilacin
18.
19.
tarro
20.
21.
22.
pre-proceso
7/25/2019 Referencia POM
26/44
23.
24.
25.
26.
27.
28.
29.
...
30.
31.
Si aadimos a estas especificaciones el elemento de plugins, que se aplicaran
nicamente a un solo POM. Sin embargo, si las aplicamos bajo
la pluginManagementelemento, e ntonces es te POMy todos los POM heredanque
aaden el experto-jar-plugina la acumulacin obtendrn e l pre-proceso-
clasesde ejecucin as.As que ms que el desorden por encima de todos los nios
incluidos en pom.xml, s olamente se requiere lo s iguiente :
1.
5.
...
6.
7. ...
8.
9.
10. org.apache.maven.plugins
11.
maven-jar-plugin
12.
13.
14.
...
15.
16.
La construccin de elementosConjunto
La construccintipo en el XSD denota aquellos e lementos que estn disponibles slo
para la "ge neracin de proye cto". A pesar del nmero de e lementos adicionales (se is ),
en realidad s lo hay dos grupos de eleme ntos que contiene proyecto de construccin
que faltan e n la acumulacin pe rfil: directorios y extensiones .
directorios
El conjunto de elementos de directorio viven en el elemento de generacin de primario,
que establece diversas estructuras de directorio para el POM en su conjunto.Puesto que
no e xis ten en el perfil se basa, e s tos no pueden ser alterados por perfiles .
7/25/2019 Referencia POM
27/44
1.
5.
...
6.
7.
$ {} basedir / src / main / java
8.
$ {} basedir / src / main / scripts
9. $ {} basedir / src / test / java
10.
$ {} basedir / target / classes
11. $ {} basedir / target / test-clases 12.
...
13.
14.
Si los valores de a * Directorioe lemento anterior se ha configurado como una ruta
absoluta (cuando s us propiedade s son e xpandidas) a continuacin, se utiliza e se
directorio. De lo contrario, es relativa al directorio de ge neracin de base: $ {}
basedir.
extensiones
Las extens iones son una lis ta de objetos que s e van a utilizar en esta construccin. Ellos
sern incluidos en la ruta de clase de construccin en marcha. Se pueden habilitar
extensiones al proce so de cons truccin (tales como agregar un proveedor de ftp para e l
mecanismo de transporte del carro), as como hacer plugins activos que hacen que los
cambios en e l ciclo de vida de cons truccin. En resumen, las e xtensiones son arte factos
que activan durante la compilacin. Las extensiones no tienen que hacer nada en
realidad, ni contienen una Mojo. Por esta razn, las extensiones son e xcelentes para
especificar uno de mltiples implementaciones de una interfaz de complementos comn.
1.
5.
...
6.
7. ...
8.
9.
10. org.apache.maven.wagon
11.
vagn-ftp
12.
1.0-alfa-3
7/25/2019 Referencia POM
28/44
13.
14.
15. ...
16.
17.
informes
Reporting contiene los e lementos que corresponden especficame nte para e l sitio
defase 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 e lemento 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 obje tivos dentro reportSetelementos. Y ladiferencia sutil que es un plugin de configuracinbajo la presentacin de
informese lemento funciona como acumulacinplugin de configuracin, aunque e l
contrario no es cierto (una acumulacinplugin deconfiguracinno afecta a
la presentacin de informesplug-in).
Pos iblemente e l nico e lemento e n la presentacin de informeselemento que no
sera familiar para alguien que entiende la acumulacinelemento es el
booleanas excludeDefaultselemento. Este elemento indica al generador de sitios para
excluir informes generados normalmente por defecto. Cuando un sitio se genera a travs
del sitio deciclo de acumulacin, una Informacin del Proyectos eccin se coloca ene l men de la izquierda, has ta los topes de informes , tales como el Equipo de Proyecto
deinforme o Dependenciasinforme 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. 5.
...
6.
7. $ {} basedir / target / sitio
8.
9.
10. maven-project-info-informes-plugin
11.
2.0.1
12.
13.
14.
15.
7/25/2019 Referencia POM
29/44
16.
17.
18. ...
19.
La otra diferencia es la OutputDirectoryelemento del plug-in. En el caso de que se
informa, e l directorio de salida e s $ {} basedir / target / sitiode forma
predeterminada.
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 ejecucinelemento con una
diferencia: no puede enlazar un informe a otra fas e . Lo s iento.
Por ejemplo, suponga que desea configurar el javadoc: javadocobjetivo de vincular a
"http://java.sun.com/j2se/1.5.0/docs/api/", pe ro slo e l javadocobjetivo (no el
objetivo maven- javadoc-plugin: tarro). Tambin nos gustara que es ta
configuracin hace pasar a sus hijos, y SET hereda la verdadera. El reportSets e
parecera a lo siguiente:
1.
5.
...
6.
7.
8.
9.
...
10.
11.
12. sunlink
13.
14.
javadoc
15.
16.
verdadera
17.
18.
19. http://java.sun.com/j2se/1.5.0/docs/api/
20.
21.
22.
23.
24.
http://java.sun.com/j2se/1.5.0/docs/api/http://java.sun.com/j2se/1.5.0/docs/api/http://java.sun.com/j2se/1.5.0/docs/api/7/25/2019 Referencia POM
30/44
25.
26.
27. ...
28.
Entre construccin ejecucionesy presentacin de informes reportSets, debe quedar
claro ahora por qu es que existen. En el sentido ms simple, que profundizan en la
configuracin. El POM debe tener una forma no slo para configurar los plugins, pero
tambin debe configurar los objetivos individuales de los plugins.Ah es donde estos
e lementos llegan, dando la granularidad ltima POM en control de su destino de
construccin.
Ms informacin sobre el proyecto
A pesar de que la informacin anterior es suficiente para conseguir un control firmesobre la autora POM, hay muchos ms elementos para hacer la vida ms fcil del
des arrollador. Muchos de e stos e leme ntos estn relacionados con la ge neracin de s itio,
pero al igual que todas las declaraciones POM, que se puede utilizar para cualquier
cos a, dependiendo de cmo ciertos plugins utilizan. Los s iguientes son los e lementos
ms simples:
Nombre: Los proyectos tienden a tener nombres de conversacin, ms all de
la artifactId. Los inge nieros de Sun no s e refirieron a su proye cto como "java-1.5",
s ino que s impleme nte lo llamaron "Tigre". Aqu es donde para e stablece r dicho valor.
Descripcin: Descripcin de un proyecto siempre es buena. Aunque esto no de besustituir a la documentacin formal, un comentario rpido a cualquier lector del POM
es siempre til.
URL: La URL, como el nombre, no e s nece sario. Es te es un buen ge sto para los
usuarios de los proyectos, s in embargo, para que sepan dnde vive e l proyecto.
inceptionYear: Este es otro buen punto de documentacin. Ser al menos ayudar a
recordar dnde ha pas ado los ltimos aos de su vida.
licencias
1.
2.
3.
Apache License, Version 2.0
4. https://www.apache.org/licenses/LICENSE-2.0.txt
5. repo
6.
Una licencia de negocios OSS
7.
8.
Las licencias son documentos legales que definen cmo y cundo se pueden usar unproyecto (o partes de un proyecto). Tenga en cuenta que un proyecto debe mostrar slo
7/25/2019 Referencia POM
31/44
las lice ncias que pueden aplicarse directamente a es te proyecto, y no detallan lice ncias
que se aplican a las dependencias de este proyecto. Maven actualmente hace poco con
estos documentos que no se an los mues tra e n los s itios generados. Sin embargo, s e
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, ur ly comentarios: son e xplica por s mismo, y s e 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 des cargar de un repos itorio 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, e tc.). Aqu es donde se es tablece la informacin ms bsica.
1.
5. ...
6.
7. Codehaus Mojo
8.
http://mojo.codehaus.org
9.
10.
Desarrolladores
Todos los proyectos cons is ten en archivos que s e crearon, e n algn momento, por una
persona. Al igual que los otros s istemas 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 desarrollodel proyecto. Tenga e n cuenta que , a pes ar de una organizacin puede tener muchos
desarrolladores (programadores) como miembros, no es buena forma para listar a todos
como des arrolladores , pero s lo aquellos que son directamente responsables por e l
cdigo. Una buena regla general es que si la persona no debe contactarse con el
proyecto, no ser necesario enumerar aqu.
1. 5.
...
7/25/2019 Referencia POM
32/44
6.
7.
8. jperez
9.
John Doe
10.
jdoe@example.com
11.
http://www.example.com/jdoe
12.
ACME
13.
http://www.example.com
14.
15.
arquitecto
16. desarrollador
17.
18.
Amrica / New_York
19.
20. http://www.example.com/jdoe/pic
21.
22.
23.
24.
...
25.
Identificacin, nombre, correo electrnico: Estas corros pond a la identificacin del
desarrollador (probablemente algn identificador nico en toda la organizacin),
nombre y direccin de correo electrnico del desarrollador.
organizacin, organizationUrl: Como habr adivinado, se trata de nombre de laorganizacin de los desarrolladores y es URL, respectivamente.
papeles: Un papeldeben especificar las acciones estndar que la persona que es
responsable . Al igual que una s ola persona puede usar muchos s ombreros , una sola
persona puede asumir mltiples papeles.
zona horaria: Una hora de la zona de identificacin vlida como Amrica /
New_Yorko Europe / Berlin, o un ajuste horario (y fraccin) numrica respecto a
UTC donde vive el desarrollador, por ejemplo, -5o +1. ID de zona horaria son muy
preferidos debido a que no s e ven afectados por e l horario de verano y los cambios de
zona horaria. Consulte laIANApara la base de datos de zona horaria oficial y una lista
enWikipedia. Propiedades: Este elemento es donde cualquier otra propiedad sobre la persona se
encuentre. Por ejemplo, un e nlace a una imagen personal o un mango de mensajera
instantnea. Diferentes plugins pueden utilizar estas propiedades, o pueden ser
s implemente para o tros des arrolladores que leyeron e l POM.
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 e s probable que tenga ms colaboradores que los des arrolladores .
https://www.iana.org/time-zoneshttps://www.iana.org/time-zoneshttps://www.iana.org/time-zoneshttps://en.wikipedia.org/wiki/List_of_tz_database_time_zoneshttps://en.wikipedia.org/wiki/List_of_tz_database_time_zoneshttps://en.wikipedia.org/wiki/List_of_tz_database_time_zoneshttps://en.wikipedia.org/wiki/List_of_tz_database_time_zoneshttps://www.iana.org/time-zones7/25/2019 Referencia POM
33/44
1.
5.
...
6.
7.
8. Noelle
9.
some.name@gmail.com
10.
http://noellemarie.com
11. Noelle Marie
12.
http://noellemarie.com
13.
14. probador
15.
16.
Amrica / Vancouver
17.
18.
some.name@gmail.com
19.
20.
21.
22.
...
23.
Colaboradores contiene n el mismo conjunto de e leme ntos que los des arrolladores sansla Identificacin delelemento.
Configuracin del entorno
Gestin de Problemas
Esto define el sistema de seguimiento de defectos ( Bugzilla, TestTrack, ClearQuest,
etc) que se utiliza. Aunque no hay nada que un plugin del uso de esta informacin para
algo, su utiliza principalmente para la generacin de la documentacin de l proye cto.
1.
5.
...
6.
7. Bugzilla
8.
http://127.0.0.1/bugzilla/
9.
10. ...
7/25/2019 Referencia POM
34/44
11.
Gestin de la Integracin Continua
Los s is temas de compilacin de integracin continua e n base a los factoresdes encadenantes o tiempos (como, por horas o por das) han crecido a favor sobre el
manual se basa en los ltimos aos. A medida que los sistemas de compilacin se han
vuelto ms estandarizada, por lo que los s is temas que e jecutan e l gatillo de
formaciones. Aunque la mayora de la configuracin es hasta el programa especfico
utilizado (Continuum, Control de velocidad, etc.), hay algunas configuraciones que
pueden tener lugar dentro del POM. Maven ha capturado a algunos de los ajustes
recurrentes dentro del conjunto de elementos del notificador. Un notificador es la manera
en que las personas son notificados de c iertos es tados de construccin. En el siguiente
e jemplo, e l POM est estableciendo un notificador de tipoelectrnico(es decir, correo
e lectrnico), y la configuracin de la direccin de correo e lectrnico para usar en e lactivas especficas sendOnError,sendOnFailure, y
no sendOnSuccesso sendOnWarning.
1.
5.
...
6.
7.
continuo
8.
http://127.0.0.1:8080/continuum
9.
10.
11.
correo electrnico
12.
verdadera
13. verdadera
14.
false
15. false
16.
continuum@127.0.0.1
17.
18.
19.
20.
...
21.
Listas de correo
7/25/2019 Referencia POM
35/44
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.
5.
...
6.
7.
8.
Lista de usuarios
9. user-subscribe@127.0.0.1
10.
user-unsubscribe@127.0.0.1
11.
user@127.0.0.1
12.
http://127.0.0.1/user/
13.
14.
http://base.google.com/base/1/127.0.0.1
15.
16.
17.
18.
...
19.
suscribirse, darse de baja: Exis ten eleme ntos especifican las direcciones de correo
electrnico que se utilizan para llevar a cabo las acciones relativas Para suscribirse a
la lista de usuarios anteriormente, un usuario podra enviar un correo electrnico a
user-subscribe@127.0.0.1.
Archivo: Este elemento especifica la direccin URL del archivo de correo antiguo de
listas de correo, si es que existe. Si hay archivos duplicados, que se pueden
especificar bajo otherArchives.
mensaje: La direccin de correo electrnico, que se podra utilizar con el fin de
publicar una entrada en la lista de correo. Tenga en cuenta que no todas las listas de
correo tienen la capacidad de publicar en (tales como una lista de fallos decompilacin).
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 ?), Entonce s aqu es donde se coloca la informacin en e l POM.
1.
7/25/2019 Referencia POM
36/44
2.
xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance"
3.
xsi: schemaLocation = "http://maven.apache.org/POM/4.0.0
4. https://maven.apache.org/xsd/maven-4.0.0.xsd " >
5.
...
6.
7.
SMC: SVN: http: //127.0.0.1/svn/my-project
8.
SMC: SVN: https: //127.0.0.1/svn/my-project
9. CABEZA
10.
http://127.0.0.1/websvn/my-project
11.
12.
...
13.
conexin , DeveloperConnection : Los dos eleme ntos de conexin transmiten acmo uno es conectar al sistema de control de versiones a travs de Maven. En caso
de conexin requiere acceso de lectura para Maven para ser capaz de encontrar el
cdigo fuente (por ejemplo, una actualizacin), DeveloperConnection requiere una
conexin que le dar acceso de escritura. El proyecto Maven ha dado lugar a otro
proyecto llamado Maven SMC, lo que crea una API comn para cualquier MEC que
des een implementarlo. Los ms populares son CVS y Subvers ion, s in embargo, exis te
una creciente lista de otros apoyados MEC. Todas las conexiones se realizan a travs
de SCM una estructura de URL comn.
SMC: [proveedor]: [provider_specific]
Donde e l proveedor es e l tipo de sis tema de SCM. Por ejemplo, la conexin a un
repositorio CVS puede tener es te as pecto:
SMC: cvs: pserver: 127.0.0.1: / cvs / root: mi-proyecto
etiqueta: especifica la etiqueta que este proyecto vive bajo. (Que significa cabeza, la
raz SMC) debe ser el predeterminado.
ur l: Un repos itorio navegable pblicame nte . Por ejemplo, a trav s de ViewCVS.
Requisitos previos
El POM puede tener ciertos requis itos previos para poder ejecutar correctamente. Por
ejemplo, tal vez hubo un arreglo en Maven 2.0.3 que necesita con el fin de implementar
e l uso de SFTP. Aqu es donde se aplica los requis itos previos a la construccin. S i
stas no se cumplen, Maven fallar la acumulacin incluso antes de empezar. El nico
e leme nto que exis te como un requis ito previo e n POM 4.0 es e l elemento experto, que
tiene un nmero de vers in mnima.
1.
7/25/2019 Referencia POM
37/44
4.
https://maven.apache.org/xsd/maven-4.0.0.xsd " >
5.
...
6.
7.
2.0.6
8.
9.
...
10.
repositorios
Los repositorios son colecciones de artefactos que se adhieren a la e s tructura 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_REPOpuede ser local
(estructura de archivos) o (URL base) a distancia; la disposicin restante ser elmismo. Existen repos itorios como un lugar para recoger y almace nar artefactos .Cada
vez que un proye cto tiene una de pende ncia de un arte facto, Mave n primero intentar
utilizar una copia local del artefacto especificado. Si ese artefacto no existe en el
repos itorio local, que entonce s intentar de scargar de un repos itorio remoto. Los
e lementos del repos itorio dentro de un POM especifican los repos itorios 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 enIbiblio es la Codehaus instantneas repo.
1.
5. ...
6.
7.
8.
9.
false
10.
siempre
11. advertir
12.
13.
14. verdadera
15.
no
16.
fallar
17.
18.
codehausSnapshots 19.
Codehaus instantneas
https://repo.maven.apache.org/maven2/https://repo.maven.apache.org/maven2/https://repo.maven.apache.org/maven2/https://repo.maven.apache.org/maven2/7/25/2019 Referencia POM
38/44
20.
http://snapshots.maven.codehaus.org/maven2
21.
default
22.
23.
24.
25.
...
26.
27.
...
28.
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 : verdaderoo falsoa si este repositorio est habilitado para el tipo
respectivo ( liberacioneso instantneas).
updatePolicy: Este e lemento e specifica la frecuencia con actualizaciones debe n
intentar que se produzca. Mave n comparar marca de tiempo de l POM local
(almacenada en el archivo maven-metadatos de un repositorio) para el mando a
dis tancia. 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 . S us opciones son para ignorar,fallar,
o avisarsobre 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 defectoo legado.
repositorios de complementos
Los repositorios son el hogar de dos grandes tipos de artefactos. El primero son
artefactos que s e utilizan como dependencias de otros arte factos. Es tos son la mayora
de los plugins que residen en el centro. El otro tipo de artefacto es plugins. Plugins de
Maven son e n s mismos un tipo especial de artefacto. Debido a esto, repositorios de
compleme ntos pueden s er separados de o tros repositorios (aunque, todava tengo que
escuchar un argumento convincente para hacerlo). En cualquier caso, la estructura de
la pluginRepositoriesbloque e lemento e s s imilar al eleme nto de
repos itorios. Los pluginRepositorye lementos cada uno e specifican una ubicac in
remota del lugar donde Maven puede encontrar nuevos plugins.
Gestin de la distribucin
7/25/2019 Referencia POM
39/44
gestin de la distribucin acta exactamente como suena: gestiona la distribucin del
artefacto y archivos de soporte ge nerados durante e l proce so de construccin. A partir
de los ltimos elementos primero:
1.
5.
...
6.
7.
...
8.
http://mojo.codehaus.org/my-project
9. desplegado
10.
11.
...
12.
downloadURL : es la URL del repos itorio de donde otra POM puede sealar e l 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 e lemento responde a e sa pregunta.
estado: Atencin! Como un pjaro de beb en un nido, el estado no debe ser tocado
por la mano de l hombre! La razn de esto e s que Maven establece r e l es tado de l
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 de l repos itorio convierte es te POM de una ve rs in anterior a
Maven 2.
Compaero: Esto podra fcilmente haber s ido llamado sincronizada. Esto
significa que este artefacto se ha sincronizado con un repositorio pareja.
desplegado : Con mucho, e l es tado ms comn, lo que s ignifica 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 de splegada. Los e leme ntos de deps ito s e utilizan para
la dis tribucin instantnea s i el snapshotRepos itory no e st de finido.
1.
7/25/2019 Referencia POM
40/44
3.
xsi: schemaLocation = "http://maven.apache.org/POM/4.0.0
4.
https://maven.apache.org/xsd/maven-4.0.0.xsd " >
5. ...
6.
7.
8.
false
9.
corp1
10.
diccionario de la empresa
11. scp: // repo / maven2
12.
default
13.
14.
15.
verdadera
16. propSnap
17. Propulsores de instantneas
18.
SFTP: //propellers.net/maven
19.
legado
20.
21.
...
22.
23.
...
24.
Identificacin, Nombre: El IDs e utiliza para identificar de forma exclus iva este
repos itorio entre muchos , y e l nombrees una forma legible por humanos. uniqueVersion: La versin nica toma una verdaderao falsavalor para indicar si
los artefactos des plegados en este repos itorio debe obtener un nmero de vers in
ge nerada de forma nica, o utilizar e l nmero de vers in de finido como parte de la
direccin.
ur l: Este e s e l ncleo de l elemento repositorio. En l se especifica tanto la ubicacin
como el protocolo de transporte que se utiliza para transferir un artefacto construido (y
el archivo POM, y los datos de suma de comprobacin) en el repositorio.
Disposicin: Estos son los mismos tipos y finalidad que el e leme nto de diseo
definido en el elemento de repositorio. Son predeterminadoy legado.
Distribucin del sitio
Ms de dis tribucin a los repos itorios , distributionManagemente s res ponsable de
definir cmo implementar sitio y la documentacin del proyecto.
1.
5. ...
6.
7.
...
7/25/2019 Referencia POM
41/44
8.
9.
mojo.website
10. Mojo sitio web
11.
scp: //beaver.codehaus.org/home/projects/mojo/public_html/
12.
13.
...
14.
15. ...
16.
Identificacin, nombre, ur l: Estos elementos son similares a sus contrapartes ms
arriba en la distributionManagement repositorioelemento.
reubicacin
1.
5. ...
6.
7. ...
8.
9.
org.apache 10. mi-proyecto
11.
1.0
12.
Hemos movido el Proyecto bajo Apache
13.
14.
...
15.
16. ...
17.
Los proyectos no son e stticas ; que s on seres vivos (o muriendo cosas , como s ea e lcas o). Una cosa comn que sucede a medida que crecen los proyectos, e s que se ven
obligados a pas ar a cuartos ms adecuados . Por e jemplo, cuando e l proyecto de cdigo
abierto un gran xito junto mueve bajo el paraguas de Apache, que sera bueno para dar
a s us us uarios como e l heads-up que el proyecto es t s iendo renombrado
a org.apache: mi-proyecto: 1.0. Adems de especificar la nueva direccin, tambin
es una buena forma para proporcionar un mens aje que explica por qu.
perfiles
Una nueva caracterstica del POM 4.0 es la capacidad de un proyecto para cambiar losajustes en funcin del entorno e n el que s e es t construyendo. Un perfilelemento
7/25/2019 Referencia POM
42/44
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 s iguientes:
1.
5.
...
6.
7.
8.
prueba
9.
...
10. ...
11.
...
12. ...
13.
...
14.
...
15. ...
16.
...
17.
...
18.
19.
20.
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 delelemento.
1.
5. ...
6.
7.
8. prueba
9.
10.
false
11.
1.5 12.
7/25/2019 Referencia POM
43/44
13.
Windows XP
14.
de Windows
15. 86
16.
5.1.2600
17.
18.
19.
de tipo gorrin
20.
africano
21.
22.
23. $ {} basedir /file2.properties
24.
$ {} basedir /file1.properties
25.
26.
27. ...
28.
29.
30.
La activacin s e produce cuando uno o ms de los criterios especificados se han
cumplido. Cuando se encuentra el primer resultado positivo, el proceso se detiene y el
perfil se marca como activo.
JDK : la activacinse ha construido en, cheque centrado en Java en
e l JDKelemento. Esto activar si la prueba se ejecuta con un nmero de versin JDKque coincida con el prefijo dado. En el ejemplo anterior, 1.5.0_06coincidirn. Gamas
tambin se admiten como de Maven 2.1. Ver e lexperto-ejecutor-pluginpara ms
detalles acerca de los rangos compatibles.
OS: El sistema operativoe lemento puede definir algunas propiedades especficas
del sis tema operativo que se mues tran arriba. Ver e l maven-e jecutor-pluginsRegla
RequireOSpara ms detalles ace rca de los valores del s is tema ope rativo.
Propiedad: El perfilse activar si Maven detecta una propiedad (un valor que
puede dejar de hacer referencia dentro del POM por $ {nombre}) del
correspondiente nombre = valorpar.
archivo : Por ltimo, un nombre de archivo dado puede activar el perfilporla existenciade un archivo, o s i es t ausente. NOTA: interpolacin para este
elemento est limitado a $ {} basedir, las propiedades del sistema y propiedades
de la solicitud.
La activacine lemento no e s la nica mane ra de que un perfilpuede s er
activado. El settings.xmlde archivo activeProfilee lemento puede contene r del
pe rfilde id. Tambin se pueden activar de forma explcita a travs de la lnea de
comandos a travs de una lista separada por comas despus de la -Pindicador (por
ejemplo, -P cobertura de cdigo).
Para ver qu perfil se activar en una cierta acumulacin, utilice el experto-ayuda-
plugin.
https://maven.apache.org/enforcer/enforcer-rules/versionRanges.htmlhttps://maven.apache.org/enforcer/enforcer-rules/versionRanges.htmlhttps://maven.apache.org/enforcer/enforcer-rules/versionRanges.htmlhttps://maven.apache.org/enforcer/enforcer-rules/requireOS.htmlhttps://maven.apache.org/enforcer/enforcer-rules/requireOS.htmlhttps://maven.apache.org/enforcer/enforcer-rules/requireOS.htmlhttps://maven.apache.org/enforcer/enforcer-rules/requireOS.htmlhttps://maven.apache.org/enforcer/enforcer-rules/requireOS.htmlhttps://maven.apache.org/enforcer/enforcer-rules/requireOS.htmlhttps://maven.apache.org/enforcer/enforcer-rules/versionRanges.html7/25/2019 Referencia POM
44/44