Referencia POM

download Referencia POM

of 44

Transcript of Referencia POM

  • 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#Introduction
  • 7/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#Profiles
  • 7/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=markup
  • 7/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=markup
  • 7/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.

    [email protected]

    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-zones
  • 7/25/2019 Referencia POM

    33/44

    1.

    5.

    ...

    6.

    7.

    8. Noelle

    9.

    [email protected]

    10.

    http://noellemarie.com

    11. Noelle Marie

    12.

    http://noellemarie.com

    13.

    14. probador

    15.

    16.

    Amrica / Vancouver

    17.

    18.

    [email protected]

    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.

    [email protected]

    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. [email protected]

    10.

    [email protected]

    11.

    [email protected]

    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

    [email protected].

    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.html
  • 7/25/2019 Referencia POM

    44/44