Inicio rápido de Maven El principiante de Maven debe ver los pasos básicos de Maven para usar Maven en IDEA

Maven

1. Razones para usar Maven

  1. Si el proyecto es muy grande, no es adecuado utilizar el paquete para dividir módulos. Maven puede dividir un proyecto en varios proyectos
  2. Con Maven, puede guardar el paquete del tarro en el almacén y sacarlo directamente del almacén cuando lo use, sin copiar ni pegar el paquete del tarro
  3. Todos los paquetes de frascos conocidos se han colocado en el almacén de Maven, sin necesidad de buscar en línea
  4. Utilice Maven para importar automáticamente el paquete jar del que depende un paquete jar

Dos, introducción a Maven

Maven es una herramienta de gestión de proyectos de código abierto de Apache. Ya sea un proyecto JavaSE o JavaEE creado en el futuro, se creará como un proyecto Maven; cada proyecto en Maven es equivalente a un objeto, uno de un objeto (proyecto) y un objeto (proyecto) Existe una relación entre ellos; la relación incluye: dependencia, herencia, agregación y el uso de proyectos Maven puede lograr más fácilmente los efectos de importar paquetes jar y dividir proyectos

Tres, descarga e instalación de Maven

  1. Dirección de descarga de Maven: http://maven.apache.org/

Inserte la descripción de la imagen aquí

  1. Instalación de Maven

(1) Descomprima el zip descargado para obtener

Inserte la descripción de la imagen aquí

(2) Modificar en settings.xml en el directorio conf

① Agregar en la pestaña de configuración

<localRepository>E:\maven_localRepository</localRepository>

El contenido de la etiqueta indica la ubicación en el disco del almacén local que almacena el paquete jar (puede crear una carpeta para especificarlo usted mismo)

Si no se especifica, la ruta predeterminada del repositorio local: C: \ Users [Nombre de usuario actualmente conectado] .m2 \ repository

② Agregar a la etiqueta de espejos en la etiqueta de configuración

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

Indica que cuando se descargan paquetes jar de almacenes remotos en Internet, se usa la duplicación de Ali y la velocidad de descarga es muy lenta usando la dirección oficial

③ Agregar a la pestaña de perfiles en la pestaña de configuración

<profile>
	<!-- 告诉maven我们用jdk1.8 -->
	<id>jdk-1.8</id>
	<!-- 开启JDK的使用 -->
	<activation>
		<activeByDefault>true</activeByDefault>
		<jdk>1.8</jdk>
	</activation>
	<properties>
		<!-- 配置编译器信息 -->
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
	</properties>
</profile>

Cuando hay varios JDK en el entorno operativo, es necesario especificar JDK, que se especifica aquí como JDK8

  1. Configuración de variables de entorno de Maven

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Después de la configuración, ingrese mvn -v en la consola para verificar si la instalación es exitosa (la versión jdk y la versión maven aparecen para indicar que la instalación fue exitosa)

Inserte la descripción de la imagen aquí

Tres, la introducción del almacén de Maven

1. Almacén remoto

(1) Almacén central

Dirección: https://mvnrepository.com/

Al descargar el paquete jar en línea, se descarga desde el almacén central de forma predeterminada, como se muestra en la figura:

Inserte la descripción de la imagen aquí

(2) Espejo del almacén central

Comparta el tráfico del almacén central, la imagen de Ali configurada previamente es la imagen del almacén central

(3) Almacén de servidores privados

El almacén interno de Maven construido en la intranet para uso interno de la empresa

2. Almacén local

El paquete jar descargado del almacén remoto se almacena en el almacén local y la ruta se ha configurado antes

3. Prioridad de almacén

Inserte la descripción de la imagen aquí

Cuarto, la introducción de las coordenadas de Maven.

Inserte la descripción de la imagen aquí

Cinco, tipo de proyecto Maven

  1. Ingeniería POM

El proyecto POM es un proyecto lógico, utilizado en el proyecto principal o proyecto de agregación, utilizado para el control de versiones del paquete jar.

  1. Proyecto JAR

Se empaquetará en un jar y se usará como un paquete jar, es decir, un proyecto local común -> Proyecto Java

  1. Proyecto WAR

Se empaquetará en guerra y se publicará en el proyecto del servidor.

Seis, usa Maven en IDEA

  1. Configurar Maven en IDEA

Inserte la descripción de la imagen aquí

  1. Crear proyecto Maven en IDEA

Inserte la descripción de la imagen aquí

  1. Introducción a la estructura de directorios del proyecto Maven

src
contiene todo el código fuente y los archivos de recursos del proyecto, así como otros archivos relacionados con el proyecto.

El
código fuente de Java se almacena en el directorio src / main / java

src / main / resources
almacena los archivos de recursos principales, como archivos de configuración xml y archivos de propiedades

src / test / java
almacena las clases utilizadas para las pruebas. Por ejemplo, las pruebas de JUNIT generalmente se colocan en este directorio

src / test / resources
puede crear manualmente una carpeta para almacenar archivos de recursos para el entorno de prueba

pom.xml
es el archivo de configuración más importante de Maven, que puede configurar la relación entre proyectos y proyectos, importar paquetes jar, etc.

El destino
está al mismo nivel que src, la carpeta donde se coloca el contenido compilado (actualmente no compilado, por lo que no existe tal estructura)

métodos de producción:

Inserte la descripción de la imagen aquí

Nota: puede aparecer una advertencia al hacer clic en instalar

Inserte la descripción de la imagen aquí

Solución:
agregue pom.xml:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

Siete, la relación entre el proyecto Maven

1. Dependencia

El desarrollo u operación de un proyecto requiere el apoyo del proyecto B, lo que significa que un proyecto depende del proyecto B

En general, se entiende que la dependencia es importar el paquete jar, y el proyecto B puede ser el paquete jar después de la instalación de su propio proyecto o el paquete jar en el almacén.

Método para inyectar dependencias: Configurar en pom.xml:

Inserte la descripción de la imagen aquí

Proceso: primero busque en el almacén local, si no lo encuentra, vaya al almacén remoto en línea para buscar, descargar al almacén local e importar, el resultado:

Inserte la descripción de la imagen aquí

Beneficios de la dependencia:

(1) Los programadores no necesitan agregar manualmente el paquete jar, simplemente configúrelo directamente en pom.xml, elimine la configuración de dependencia dependiente y el proyecto borrará automáticamente el paquete jar correspondiente.

(2) Puede resolver el problema del conflicto del paquete jar. Si se importa el mismo paquete jar de diferentes versiones, dos paquetes jar no aparecerán en el proyecto y uno de ellos se retendrá automáticamente

① Las características y principios de la dependencia

(1) Características

El proyecto 1 de Maven depende de jar1, el proyecto 2 de Maven depende del proyecto 1 de Maven, luego jar1 también se importará al proyecto 2 de Maven, y jar1 dependiente del proyecto 1 se puede usar directamente

El método del proyecto 1 que depende del proyecto 2 es el mismo que el método de confiar en el paquete jar, solo configure las coordenadas después de la instalación del proyecto

(2) Principio

i. El primer principio del camino más corto

Por ejemplo, suponga que la dependencia entre A, B y C es A-> B-> C-> D (2.0) y A-> E -> (D1.0), entonces D (1.0) se usará porque The La ruta de A a través de E a D es más corta
ii. Primero declare el principio de prioridad

Partiendo de la premisa de que la longitud de la ruta de dependencia es igual, el orden de la declaración de dependencia en pom.xml determina quién será analizado y usado, y la dependencia con el orden más alto se usa primero

② Eliminar la dependencia

A depende de B, B depende de C, C depende de mybatis.jar, excluye mybatis.jar en C de A

<!-- 项目A的pom.xml中编辑 -->
<dependencies>
    <!-- 依赖项目C -->
    <dependency>
        <groupId>com.qizegao</groupId>
        <artifactId>MavenDemo</artifactId>
        <version>1.0-SNAPSHOT</version>

        <!-- <exclusions>中可以使用多个<exclusion> -->
        <exclusions>
            <exclusion>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <!-- 不写版本号 -->
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

③ Alcance de la dependencia

El alcance de la dependencia determina cuándo el paquete jar dependiente es válido y no válido

Uso de alcance dependiente:

Inserte la descripción de la imagen aquí

依赖范围分类:

compilar
Este es el alcance predeterminado, si no se especifica, se usará el alcance de la dependencia, lo que significa que la dependencia tiene efecto tanto en la compilación como en el tiempo de ejecución

La
dependencia proporcionada es necesaria al compilar y probar el proyecto, pero no tiene efecto cuando se ejecuta el proyecto.

el tiempo de ejecución
no necesita tener efecto en el tiempo de compilación, pero solo tiene efecto en el tiempo de ejecución

El
alcance de la dependencia del sistema es similar al proporcionado. Cuando se usa la dependencia del alcance del sistema, la ruta del archivo dependiente debe especificarse explícitamente a través de la etiqueta systemPath.

la prueba
solo es necesaria al compilar el código de prueba y ejecutar la prueba, el funcionamiento normal del proyecto no requiere tales dependencias

import
import debe declararse en la etiqueta del archivo de configuración pom.xml para especificar el número de versión del paquete jar

2. Herencia

Declare el proyecto principal como un proyecto POM, y el proyecto secundario importará el paquete jar del que depende el proyecto principal de forma predeterminada
(use la etiqueta dependencyManagement para administrar todos los paquetes jar y controlar la versión del paquete jar)

<groupId>com.qizegao</groupId>
<artifactId>ParentMaven</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 打包类型,默认是jar -->
<packaging>pom</packaging>

<!-- 管理所有jar包,使用dependencyManagement标签表示不会引入这些jar包,仅管理 -->
<!-- 使用properties标签和${}控制版本 -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <!-- 使用properties标签中的版本号 -->
            <version>${name}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

<properties>
    <!-- 此标签可任意起名 -->
    <name>3.5.6</name>
</properties>

Declarar un subproyecto para heredar del proyecto anterior

<!-- parent标签指定父工程 -->
<parent>
    <groupId>com.qizegao</groupId>
    <artifactId>ParentMaven</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 以下标签声明父工程的pom.xml文件所在的位置 -->
    <relativePath>../ParentMaven/pom.xml</relativePath>
</parent>

<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <!-- 无需声明版本号,继承父工程的版本号,父工程可以控制子工程的版本号 -->
        <!-- 子工程可以使用version标签指定版本号而不使用父工程的版本号 -->
    </dependency>
</dependencies>

Nota: Si el proyecto principal usa el rango de dependencia de importación, el subproyecto debe usar el número de versión especificado por el proyecto principal.

3. Agregación

Cuando el proyecto desarrollado tiene varios módulos (cada módulo es un proyecto independiente), debe utilizar el proyecto agregado

El proyecto total del proyecto de agregación (el proyecto principal en el nivel superior) debe ser un proyecto POM, y el resto de los módulos están incluidos en él. Use etiquetas en el proyecto principal para indicar los submódulos incluidos:

8. Complementos de uso común para Maven

1. Complemento de copia de recursos

Cuando Maven empaqueta, de forma predeterminada, solo los archivos de configuración en src / main / resources se copian en el proyecto y se empaquetan. Los archivos de configuración en este directorio no se agregarán al proyecto al empaquetar. Use este complemento para empaquetar los archivos especificados

Configure los recursos que se empaquetarán en pom.xml:

<build>
    <resources>
        <resource>
            <!-- 要打包的资源位置 -->
            <directory>src/main/java</directory>
            <includes>
                <!-- 要打包的资源 -->
                <include>**/*.xml</include>
            </includes>
        </resource>
        <resource>
            <!-- 要打包的资源位置 -->
            <directory>src/main/resources</directory>
            <includes>
                <!-- 要打包的资源 -->
                <include>**/*.xml</include>
                <include>**/*.properties</include>
            </includes>
        </resource>
    </resources>
</build>

2. Complemento de Tomcat

No es necesario depender de un servidor Tomcat externo, Maven proporciona el complemento Tomcat

(1) Crea un proyecto web

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Estructura después de la creación (los directorios que faltan como java, recursos, etc. se pueden crear manualmente):

Inserte la descripción de la imagen aquí

 注意:创建项目时如果出现警告:
		   No archetype found in remote catalog. Defaulting to internal catalo

Solución:
Inserte la descripción de la imagen aquí

(2) Configure el complemento Tomcat en el archivo pom.xml

<build>
  <plugins>
    <!-- 配置Tomcat插件 -->
    <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.2</version>
      <configuration>
        <!-- 配置Tomcat监听端口 -->
        <port>8080</port>
        <!-- 配置项目的访问路径(Application Context) -->
        <path>/</path>
      </configuration>
    </plugin>
  </plugins>

Inserte la descripción de la imagen aquí

Resultado de la operación:
ingrese en la barra de direcciones: http: // localhost: 8080 / MyProject
accedió exitosamente a la página index.jsp
(modifique el formato de codificación en la página jsp a UTF-8 para evitar códigos desordenados)

Esto indica que el servidor se inició correctamente.
Inserte la descripción de la imagen aquí

Nueve, los comandos comunes de Maven

Se puede hacer clic directamente en los comandos de Maven en el lado derecho del icono anterior para ejecutar

  • instalar
    Instalación local, incluida la compilación, el empaquetado y la instalación en un almacén local

Comando Compile-javac Comando
Package-jar, empaquetar el código java en un archivo jar
Instalar en el almacén local: guardar el archivo jar empaquetado en el almacén local

  • clean
    borra la información compilada, elimina el directorio de destino en el proyecto y elimina el archivo jar empaquetado

  • compilar
    solo compila, equivalente al comando javac

  • paquete
    , incluidas dos funciones de compilación y empaquetado

La diferencia entre instalar y empaquetar:

El comando del paquete completó la compilación del proyecto, las pruebas unitarias y las funciones de empaquetado, pero no implementó el paquete jar ejecutable (paquete war u otra forma de paquete) en el almacén local de maven y el almacén de servidor privado remoto de maven.

El comando de instalación completa la compilación del proyecto, las pruebas unitarias y las funciones de empaquetado. Al mismo tiempo, el paquete jar ejecutable (paquete war u otra forma de paquete) se implementa en el almacén de maven local, pero no en el almacén de servidor privado de maven remoto. .

Supongo que te gusta

Origin blog.csdn.net/weixin_49343190/article/details/110009147
Recomendado
Clasificación