las propiedades de dependencia Maven

directorio

experto en 9 especies dependientes dependencia propiedad de dependencia, a saber:

    groupId ------ nombre del paquete (normalmente escrito como anti-dominio).

    artfactId ------ nombre del proyecto.

    ------- versión versión. 

    escriba ---------- tipo dependiente.

    clasificador

----- alcance rango efecto dependiente.

exclusiones --- excluyen dependencias transitivas, resolver conflictos tarro.

Dependiendo de si el marcador opcional ----- puede pasar, el valor por defecto de falsa.


 

experto en 9 especies dependientes dependencia propiedad de dependencia, a saber:

  groupId, artfactId, versión, tipo, clasificador, el alcance, systemPath, exclusiones, opcional.

 

En donde groupId, artfactId, la versión de tres coordenadas básico dependencia indispensable.

    groupId ------ nombre del paquete (normalmente escrito como anti-dominio).

    artfactId ------ nombre del proyecto.

    ------- versión versión. 

    escriba ---------- tipo dependiente.

                frasco o WAR (tarro de forma predeterminada, que muestra el paquete de la dependencia es un frasco), también cuando se expresa como un tipo <tipo> pom.lastUpdated </ type> Tales atributos que representan únicamente la descripción de la jarra se carga en, el actual paquete jar no importó.

    clasificador

                Se utiliza normalmente con miembros diferentes contenido construido a partir de la misma POM, atributo opcional puede ser una cadena arbitraria. atributos adicionales del clasificador de paquetes, si no es junto con clasificador, experto no puede encontrar este paquete, tal como la siguiente dependencia:

<dependency>  
     <groupId> net.sf.json-lib </ groupId>   
     <artifactId> JSON-lib </ artifactId>   
     <versión> 2.2.2 </ versión>  
</ dependency> 

A continuación, vaya al almacén central Vista

Almacén central y se encontró ningún paquete JSON-lib-2.2.2.jar, naturalmente, no puede encontrarlo, sólo hay diferentes versiones de la biblioteca JSON-2.2.2.jar, esta vez clasificador puede especificar el deseado versión.

<dependency>  
     <groupId> net.sf.json-lib </ groupId>   
     <artifactId> JSON-lib </ artifactId>   
     <versión> 2.2.2 </ versión>
     <clasificador> jdk15 </ clasificador>
</ dependency>  

De modo que usted puede encontrar JSON-lib-2.2.2-jdk15.jar este paquete

clasificador no sólo puede especificar el número de versión, puede especificar diferentes partes del mismo proyecto, como por ejemplo: archivo de origen, javadoc, archivos de clase. En la figura de arriba se encuentra un poco de paquete y el paquete JSON-lib-2.2.2-jdk15-source.jar JSON-lib-2.2.2-jdk15-javadoc.jar, si necesita un javadoc, en XML el documento se puede escribir así:

<dependency>  
     <groupId> net.sf.json-lib </ groupId>   
     <artifactId> JSON-lib </ artifactId>   
     <versión> 2.2.2 </ versión>
     <clasificador> jdk15-javadoc </ clasificador>
</ dependency >  

Del mismo modo, si los necesita puede poner paquete fuente clasificador escrita jdk15 de código.

----- alcance rango efecto dependiente.

      Se refiere POM carga los paquetes entrantes, el radio de acción.

 un alcance total de la compilación, tiempo de ejecución, Test, Sistema, siempre 5 tipos de valores de atributos,. las compilar sus valores predeterminados , en el que:
    la compilación: gama de compilación, el ámbito predeterminado, está presente en la ruta de clase.
    siempre que: rangos han sido suministrados, tal como un recipiente provisto API Servlet.
    tiempo de ejecución: Rango de funcionamiento, el compilador no necesita, interfaz y la separación aplicación.
    Prueba: campo de pruebas, las necesidades de entorno de prueba unitaria.
    sistema: un miembro personalizado de todo el sistema, designado systemPath.
    importación: importación dependiente. No va a trabajar en una mesa de tres ruta de clase.

         compilación   indica que este frasco se lleven a efecto en todos los rangos.

         prueba      indica que sólo en el alcance de esta jarra de prueba tenga efecto, tal como Junit (compilación predeterminada, no se queja, prueba ampliada),

       tiempo de ejecución  indica que la entrada en vigor de la prueba de jarras y tiempo de ejecución, tales como controlador JDBC (compilación por defecto, no se queja, el funcionamiento extendido), hemos compilado este paquete no sólo se utiliza en las pruebas, y el tiempo de ejecución para su uso.

        proporcionada indica que el frasco en vigor al compilar y probar, como servlet-api, jsp-api, esto se aporte debe ser llenado, no se puede utilizar de compilación, porque: Cuando creamos proyectos web en eclispe, eclipse añadió dos para nosotros después de que el paquete de tarro, salió de la eclispe, en Tomcat nos proporcionará estos dos paquetes, por lo que no se quejan, pero cuando creamos un proyecto Maven, que no son proyecto web, por lo que no añade a nuestra eclispe el paquete de dos frasco, que necesita ser añadido a través de experto, pero si se establece la compilación, se ejecutan en Tomcat, el Tomcat se proporciona con el conflicto de estos dos paquetes, por así suministrados.

        sistema   representa un paquete añadimos manualmente, no pertenece almacén experto perteneciente a otras bibliotecas paquete frasco, sólo tiene efecto en la compilación y el período de prueba, operación no válida, por lo general no, uso, necesidad de cumplir con los siguientes systemPath uso.

        systemPath-- especifica camino no es experta en las dependencias.

       Crear una ubicación de almacenamiento de un tarro de paquetes lib importado manualmente en el proyecto,

A continuación, añadir otra dependencia pom.xml,

basedir representa el directorio raíz.

 

exclusiones --- excluyen dependencias transitivas, resolver conflictos tarro.

       medios de suministro dependientes de proyecto Un punto B, punto B, C dependiente de artículo, en el uso del punto A, se cargarán punto B, de modo que la transferencia dependerá proyecto C, D, E, etc. cargada en. En la que B es directamente dependiente de la A, C A, es indirectamente dependiente

Por ejemplo: Programa A B-dependiente (versión 1.1), C es también dependiente en el proyecto B (versión 1.2), mientras que si el artículo tiene ahora un elemento de dependencia A y el punto B, entonces se presenta dos versiones de B, ya que B es dos versiones diferentes, esto conducirá a un conflicto, esta vez en la necesidad de resolver los conflictos exclusiones, pero experto también tiene un mecanismo evitaría tanto cargado en él.

A continuación se describe el experto dependientes primer principio de ajuste:

1, los primeros principios: el principio de la ruta de prioridad recientemente,

                       A → B → C → X (1,1)

                       D → E → X (1,2)

                       Usando X (1,2), ya que está más cerca de la trayectoria

2, el segundo principio: el principio de la primera declarante prioridad

                       A → B → X (1,1)

                       C → D → X (1,2)

                      Utilice X (1.1), desde su primera declaración

experto primero determina de acuerdo con un primer principio, si los caminos son iguales, entonces de acuerdo con el segundo principio de determinación

Pero todavía usamos exclusiones a una asignación más racional, utilizamos frijol resorte y el resorte struts2 plugin para dar un ejemplo de este problema y de uso de exclusiones para resolver este problema (frijol primavera y el plug-in de primavera struts2 se basan en la primavera-core, pero no la misma versión)
 

Dependiendo de si el marcador opcional ----- puede pasar, el valor predeterminado es falso, no pasan.

               paquete jar opcional se puede utilizar para reducir los conflictos entre proyectos.

 

Publicado 13 artículos originales · ganado elogios 1 · vistas 7805

Supongo que te gusta

Origin blog.csdn.net/weixin_40482816/article/details/102814670
Recomendado
Clasificación