1. ¿Qué es Maven?
Maven es una herramienta de construcción de proyectos desarrollada en Java. Puede automatizar la compilación, las pruebas, la publicación y los documentos durante el proceso de construcción del proyecto, reduciendo en gran medida la carga de implementación de los programadores.
2. Instale Maven
Instalar Maven es muy simple. Visite la página oficial de Maven para descargar: http://maven.apache.org/download.cgi
Después de descargar, configure la variable de entorno M2_HOME y luego ejecute MVN -Version en el terminal. Cuando ve el indicador de salida correcto, Maven está instalado.
3. Conceptos básicos de Maven
La idea central de Maven es POM, es decir, modelo de objeto de proyecto. Los archivos de POM describen los recursos (código fuente, dependencias, pruebas, etc.) utilizados por un proyecto Maven en forma de un archivo XML. La siguiente figura describe la estructura del archivo POM y cómo Maven llama al archivo POM.
Cuando se ejecuta un comando maven, se pasará un archivo POM y se ejecutará Maven en el recurso descrito en el POM
Archivo POM:
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. http://maven.apache.org/xsd/maven-4.0.0.xsd "> <modelVersion> 4.0.0 </modelversion> <!-The Basics-> <ProupId> ... </groupID> <artifactID> ... </arifactid> <Version> ... </versión> <packaging> ... </packaging> </plaating> ... </dependientes ... ... <SpendencyManagement> ... </dependenceManagement> <modules> ... </modules> <propersies> ... </ppersies> <!-Configuración de compilación-> <eded> ... </build> <neporting> ... </reporting> <!-más información del proyecto-> <name> ... </name> <scription> ... </scription> <url> ... </url> <inceptionear> ... </inceptesceyear <ROUNTIVION> ... </organización> <velopers> ... </velopers> <trabons> ... </trabons> <!-Configuración de entorno-> <sisManagement> ... </sisManagement> <Cimanagement> ... </cimanagement> <AsorilingLists> ... </ilinglists> <scm> ... </scm> <Rerequisites> ... </ prererites> ... <</repositorios> <Sepositories> ... </epositories> <gluginRepositories> ... </tuginRepositories> <ScributionManagement> ... </ distributionmanagement> <pperpesiles> ... </perfiles> </proyecto>
ModelVersion es la versión del modelo POM, 4.0.0 admite Maven2 y 3
Coordenadas Maven (coordenadas Maven)
(1) GroupId: es la identificación única de una organización o proyecto. En la mayoría de los casos, utilizará el nombre raíz del paquete Java del proyecto como Groupid, como com.pastqing
(2) ArtifactId: es el nombre del proyecto que se está construyendo, por ejemplo, un sistema de pago ArtifactId es el pago web. ArtifactId es el nombre del subdirectorio en el directorio de GroupID en el repositorio de Maven
(3) Versión: como el nombre implica el número de versión de la emisión del proyecto
Los tres elementos anteriores son parte del nombre del resultado de compilación. Después de construir el proyecto, se generará un paquete JAR. La ruta ubicada en el repositorio de Maven es Maven_repo/com/Pastqing/Web-Pay/1.0/Web-Pay-1.0.Jar
4. Un proyecto de Java de Hello World Builed con Maven
Cree un proyecto utilizando el arquetipo de complemento Maven:
Abra el directorio de trabajo en el terminal y ejecute el comando:
Arquetipo de MVN: Generar
, La primera vez que se ejecuta es más lenta porque la primera vez que necesita descargar el prototipo del proyecto relacionado desde el repositorio central Maven. Después de descargar, se seleccionará el modelo del proyecto, y se ingresará GroupId, ArtifactId, Version, etc. Habrá un mensaje de éxito después de completar la construcción.
Empaque el proyecto: Cambie al directorio de Root Project y ejecute el paquete MVN. Después de que el paquete sea exitoso, el proyecto generará una carpeta de destino con archivos JAR generados y archivos de clase.
Ejecute el archivo jar:
Java -CP Target/Helloworld-1.0-Snapshot.jar com.pastqing.app
En este punto, se ha completado un proyecto Java más simple creado por Maven.
5. Un proyecto Java-Web construido con Maven
Generar un proyecto web es básicamente similar a la generación de un proyecto Java, pero el modelo utilizado es diferente. No lo explicaré aquí. Hablemos sobre cómo usar Tomcat o Jetty Plug-in para ejecutar un proyecto web. Aquí tomamos a Tomcat como ejemplo.
Instalación del complemento Maven Tomcat: http://tomcat.apache.org/maven-plugin-2.2/
Agregamos la siguiente información de complemento al archivo POM en el proyecto web
<glugin> <MoupRid> org.apache.tomcat.maven </proupid> <artifactid> tomcat6-maven-plugin </artifactid> <versión> 2.2 </versión> </plugin> <glugin> <proupid> org.apache.tomcat.maven </proupid> <artifactid> tomcat7-maven-plan <Versión> 2.2 </versión> </tugin>
De esta manera, integramos el complemento Maven de Tomcat, y solo necesitamos un comando para implementar e iniciar el servicio. El comando es el siguiente:
MVN Tomcat: Run
(Tomcat6)
MVN Tomcat7: Run
(Tomcat7)
Implementación automática en Tomcat externo usando el complemento Tomcat Maven
La implementación automática anterior utilizará Tomcat incrustado en Maven. A continuación, modificamos el archivo POM para permitir que el proyecto se implementa en TOMCAT externo.
Modificar el archivo POM del proyecto y agregar información de configuración del servidor
<glugin> <proupid> org.apache.tomcat.maven </groupid> <artifactid> tomcat7-maven-plugin </artifactid> <versión> 2.2 </versión> <figuration> <url> http: // localhost: 8080/texter/text </url> <verver> tomcat7 </server> <sserername> <Password> Admin </boraseque> </figuration> </tugin>
Los valores del servidor, el nombre de usuario y la contraseña corresponden uno por uno al servidor, nombre de usuario y contraseña en setting.xml en %maven_home.
Inicie el Tomcat externo y ejecute el comando MVN Tomcat7: Redeploy
6. Cómo construir un proyecto múltiple con Maven
1. Parent Pom
Todos los archivos Maven POM se heredan de un POM principal. Si no se especifica POM principal, el archivo POM se hereda de la raíz POM. La relación de integración de los archivos POM se muestra en la figura a continuación:
Puede hacer que un archivo POM herede explícitamente otro archivo de POM. De esta manera, la configuración de todos los archivos de POM infantiles se puede modificar modificando la configuración del archivo Public Parent POM. Aquí usamos la etiqueta principal para definir el POM principal. Vamos a construir un proyecto Mavne de múltiples módulos
2. Construya la estructura del directorio del proyecto
Creamos un proyecto Maven-Web llamado EducationCloud. A continuación, creamos varias carpetas en el directorio del proyecto para dividir nuestros módulos. Son padres educativos (módulo matriz), núcleo educativo (negocios), entidad educativa (entidad), educación-Web (servicio web)
La división del directorio se puede dividir de acuerdo con las necesidades, mi división es la anterior
3. Modifique el archivo POM
Usamos etiquetas de módulos para dividir módulos. Abra el archivo POM en el directorio raíz y agregue la etiqueta MoUdle.
<? xml versión = "1.0" encoding = "utf-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschemainstance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelsversion> 4.0.0 </modelversion> <MoupRoupid> com.educationcloud </groupid> <sartifactid> <versión> 1.0-snapshot </versión> <packaging> pom </packaging> <modules> <smodule> Education-Parent </module> <smodule> Education-Core </smodule> <smodule> Education-Entity </smodule> <module> Education-Web </module> </modules> <nere> EducationCloud </name> </jection>
Aquí hablamos de la etiqueta de embalaje: la más común es empaquetarla como un frasco, guerra. Cualquier proyecto Maven necesita definir el elemento empaquetado en el archivo POM. Si el elemento no se declara, se empaqueta como un frasco de forma predeterminada. Si el valor de la definición es la guerra, se empaqueta como un paquete de guerra. Si el valor es POM, no se genera ningún paquete (generalmente se usa en el módulo principal).
Agregue las etiquetas parentales a cada módulo:
La etiqueta principal se usa para definir la posición de coordenada del POM principal, y se define de la siguiente manera:
<Parent> <MoupRid> com.educationcloud </proupid> <artifactid> EducationCloud-Parent </artifactid> <versever> 1.0-snapshot </versewers> <lelativePath> </relativepath> </rent>
GroupId, AritFactid, la versión son elementos que representan la información de ubicación del POM principal. RelativePath es la ruta relativa que representa la ubicación de la POM principal. El valor predeterminado es ../pom.xml. Cabe señalar aquí que la versión GroupId, AritFactid, debe corresponder al archivo POM principal.
Use la gestión de dependencias para administrar todas las dependencias en el proyecto. Para administrar las dependencias de manera uniforme, utilizamos la gestión de la dependencia en el archivo POM del módulo de proyecto principal para declarar todas las dependencias en el proyecto. De esta manera, al referirse a las dependencias en otros subproyectos, el número de versión se puede omitir, y también es fácil de modificar.
Escriba el archivo POM del módulo de proyecto principal ** EducationCloud-Parent, agrégalo de la siguiente manera:
Use PluginManagement para administrar el complemento Maven en el proyecto. Para administrar de manera uniforme el complemento Maven en el proyecto, como el complemento de compilación Maven, el complemento de embalaje, etc. y su información de configuración, agregue la gestión de complementos al archivo POM principal para la administración. De esta manera, los complementos a los que se hace referencia en todos los submódulos se procesarán de manera uniforme, y se agrega los siguientes:
<gluginmanagement> <glugins> <!-Configuración de complemento de complemento-> <glugin> <MoupRupid> org.apache.maven.plugins </proupid> <artifactid> maven-Complier-plugin </artifactid> <version> 3.3 </versión> <figuration> <overing> 1.7 </over> <parget> </figuration> <glugin> </glugins> </pluginmanagement>
Arriba agregamos la configuración del complemento de compilación Maven, compilado con JDK1.7. Después de ahorrar, podemos ver las modificaciones correspondientes en el POM efectivo de cada submódulo.
Use etiquetas de propiedades para definir constantes:
Definimos los números de versión de cada dependencia como constantes diferentes, de modo que sea conveniente para modificaciones futuras:
<Proteies> <JdkVersion> 1.7 </jdkversion> <ServletVersion> 3.1.0 </servletversion> <mysqlversion> 5.1.34 </sqlversion> <Junitversion> 4.12 </Junitversion> <FaultInEncoding> Utf-8 </faultInencoding> </propices>
Al citar, simplemente use la forma de $ {jdkversion}.
Tenga en cuenta que todas las operaciones anteriores se pueden operar en el IDE, lo que lo hace más conveniente y simple.