Serie de llenado de pozos | Comenzando con Maven

Herramienta de construcción automatizada Maven

Comencé estudiando el tutorial de Maven del Sr. Wang He, el último tutorial ultradetallado de Maven de 2021_Introducción práctica básica de Maven

Capítulo 1 Introducción a Maven

1.1 Etapas del desarrollo de software

Análisis de necesidades: Analizar las funciones específicas que completa el proyecto, cuáles son los requisitos y cómo implementarlos.

Etapa de diseño: Con base en los resultados del análisis, qué tecnología se debe utilizar en el proyecto de diseño y cómo resolver las dificultades.

Etapa de desarrollo: codificación para implementar funciones. Compila el código. autotest

Etapa de prueba: los probadores profesionales prueban que las funciones de todo el proyecto cumplen con los requisitos de diseño. Emitir un informe de prueba.

Fase de empaquetado y lanzamiento del proyecto: instalar el proyecto para los usuarios

1.2 Qué puede hacer Maven

1) Construcción automática de proyectos para ayudar a los desarrolladores a compilar, probar, empaquetar, instalar e implementar el código del proyecto.

2) Administrar dependencias (administrar varios paquetes jar utilizados en el proyecto).

Dependencias: otros recursos que deben usarse en el proyecto, los más comunes son los jars. Por ejemplo, el proyecto necesita utilizar el controlador mysql. Digamos que el proyecto depende del controlador mysql.

1.3 Cómo gestionar dependencias sin usar maven

Para administrar frascos, debe descargar un frasco por separado de la red.

Necesidad de elegir la versión correcta.

Manejar manualmente las dependencias entre archivos jar. Las clases de b.jar deben usarse en a.jar.

1.4 ¿Qué es experto?

Maven es un proyecto de código abierto de la Fundación Apache y se desarrolla utilizando la sintaxis de Java. El significado original de la palabra Maven es: experto, experto.

Maven es una herramienta de construcción automatizada para proyectos. Gestionar las dependencias del proyecto.

1.5 Conceptos en maven

① POM
② Estructura de directorio acordada
③ Coordenadas
④ Gestión de dependencias
⑤ Gestión de almacenes
⑥ Ciclo de vida
⑦ Complementos y objetivos
⑧ Herencia
⑨ Agregación

1.6 Obtención e instalación de herramientas maven

Dirección: http://maven.apache.org/ Descargue el archivo .zip.

Capítulo 2 Los conceptos centrales de Maven

2.1 Estructura de directorio acordada

Los proyectos de Maven utilizan la estructura de directorios que sigue la mayoría de la gente. Se llama estructura de directorios acordada.

Un proyecto maven es una carpeta. Por ejemplo, el proyecto se llama Hola.

Hello 项目文件夹
    \src
    	\main				叫做主程序目录(完成项目功能的代码和配置文件)
             \java          源代码(包和相关的类定义)
    		 \resources	    配置文件
    	\test               放置测试程序代码的(开发人员自己写的测试代码)
    		 \java          测试代码的(junit)
    		 \resources     测试程序需要的配置文件
    \pom.xml                maven的配置文件, 核心文件

Cómo utilizar maven:

1) Maven se puede utilizar de forma independiente: crear proyectos, compilar código, probar programas, empaquetar, implementar, etc.

2) Utilice Maven e Idea juntos: utilice Maven a través de Idea para realizar codificación, pruebas, empaquetado, etc.

2.2 POM

POM: Modelo de objetos del proyecto, Maven trata el proyecto como un modelo. Operar este modelo es operar el proyecto.

Maven implementa la construcción de proyectos y la gestión de dependencias a través del archivo pom.xml.


<?xml version="1.0" encoding="UTF-8"?>

<!-- project是根标签, 后面的是约束文件 -->
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    
  <!-- pom模型的版本, 就是4.0.0 -->  
  <modelVersion>4.0.0</modelVersion>

  <!-- 坐标 -->  
  <groupId>com.bjpowernode</groupId>
  <artifactId>ch01-maven</artifactId>
  <version>1.0-SNAPSHOT</version>
  
  <properties>
     <java.version>1.8</java.version>
     <maven.compiler.source>1.8</maven.compiler.source>
     <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  
</project>

2.3 Coordenadas

La composición de coordenadas es groupid, artificialId, versión. El concepto de coordenadas proviene de las matemáticas. ·

El papel de las coordenadas: lo que determina el recurso es el identificador único del recurso. En maven, cada recurso es una coordenada. Los valores de las coordenadas son únicos. La abreviatura es gav.

  <groupId>com.bjpowernode</groupId>
  <artifactId>ch01-maven</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

groupId: 组织名称,代码。 公司,团体或者单位的标识。 这个值常使用的公司域名的倒写。
         例如:学校的网站 www.bjpowernode.com, groupId: com.bjpowernode

         如果项目规模比较大, 也可以是 域名倒写+大项目名称。
	     例如: www.baidu.com ,  无人车: com.baidu.appollo
artifactId:项目名称, 如果groupId中有项目, 此时当前的值就是子项目名。 项目名称是唯一的。
version:版本, 项目的版本号, 使用的数字。 三位组成。 例如 主版本号.次版本号.小版本号, 例如: 5.2.5。
         注意:版本号中有-SNAPSHOT, 表示快照,不是稳定的版本。      
   
packaging 项目打包的类型, 有jar ,war, ear, pom等等 默认是jar

El proyecto utiliza gav:

1. Cada proyecto maven debe tener su propio gav

2. Para gestionar las dependencias, debe utilizar otros archivos jar y gav como identificador.
Dirección de búsqueda de coordenadas: https://mvnrepository.com/

2.4 Dependencia

Dependencias: otros recursos (jars) a utilizar en el proyecto.

Debe utilizar maven para expresar dependencias y gestionar dependencias. Al usar dependencia y gav juntos para completar el uso de dependencias
, debe usar dependencias y dependencias en el archivo pom.xml y gav para completar las instrucciones de dependencia.

Formato:

<dependencies>
    <!-- 日志 -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    
    <!-- mysql驱动 -->
     <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.16</version>
    </dependency>

</dependencies> 

maven使用gav作为标识,从互联网下载依赖的jar。下载到你的本机上。由maven管理项目使用的这些jar

2.5 Almacén

Los almacenes almacenan cosas. Los almacenes de Maven:

  1. El propio paquete jar de la herramienta maven.
  2. Otros archivos jar de terceros, como el controlador mysql utilizado en el proyecto.
  3. Los programas escritos por usted mismo pueden empaquetarse como archivos jar. Almacenar en almacén.

Clasificación del almacén:

  1. Repositorio local (repositorio nativo): Ubicado en su propia computadora, es un directorio en el disco.
    Repositorio local: la ruta predeterminada es /.m2/repository en el directorio de la cuenta en la que inicia sesión en el sistema operativo.

         C:\Users\NING MEI\.m2\repository
    

    Modifique la ubicación del almacén local: modifique el archivo de configuración de la herramienta maven (ruta de instalación de maven\conf\setting.xml)

    Pasos:
    1) Cree un directorio para usarlo como almacén. No debe haber caracteres chinos ni espacios en el directorio. No hagas que el directorio sea demasiado profundo.

    ​ Por ejemplo: D:\repositorio abierto

    2) Modifique el archivo settings.xml y especifique el directorio D:\openrepository

        <localRepository>D:/openrepository</localRepository>
    

    ​ 3) Copie los recursos del almacén que le proporcioné en D:/openrepository

  2. Almacén remoto: 1) Almacén central al que se debe acceder a través de Internet
    : un servidor ftp que almacena todos los recursos.
    2) Espejo del almacén central: Es una copia del almacén central. Hay espejos en todas las ciudades importantes.
    3) Servidor privado: utilizado en la red de área local. Un servidor privado es su propio servidor de almacén. Utilizado dentro de la empresa.

Maven usa el almacén: Maven usa automáticamente el almacén. Cuando se inicia el proyecto y se ejecuta el comando maven, maven primero accede al almacén local y obtiene los frascos necesarios del almacén. Si el almacén local no existe, necesita acceder el servidor privado o almacén central o mirror.Insertar descripción de la imagen aquí

2.6 Ciclo de vida, complementos y comandos de Maven

Ciclo de vida de Maven: varias etapas de la construcción del proyecto. Incluyendo limpieza, compilación, prueba, generación de informes, empaquetado, instalación e implementación.

Complemento: para completar cada etapa de la construcción del proyecto, se deben utilizar comandos de maven y la función de ejecutar comandos se completa a través de complementos. Los complementos son frascos y algunas clases.

Comando: la ejecución de funciones de Maven se emite mediante el comando. Por ejemplo mvn compilar

Prueba unitaria (junit):
junit es una herramienta de prueba unitaria, que se utiliza a menudo en Java.
Unidad: se refiere al método en java. Un método es una unidad y un método es la unidad de prueba más pequeña.
Función: utilice junit para probar si el método cumple con los requisitos. Autoprueba del desarrollador.

Utilice pruebas unitarias:
1) Agregue dependencias junit (algunas clases y métodos)

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

2) Cree archivos de clase de prueba en el directorio src/test/java. Escribir código de prueba

Recomendaciones para pruebas unitarias:

1. La definición de la clase de prueba, el nombre generalmente es Prueba + el nombre de la clase a probar

2. El nombre del paquete de la clase de prueba es el mismo que el nombre del paquete de la clase que se va a probar.

3. Defina métodos en la clase y pruebe el código.

​ Definición de método: método público,

Sin valor de retorno

Personalización del nombre del método (prueba recomendada + nombre del método de prueba)

​El método no tiene parámetros.

4. Los métodos de la clase de prueba se pueden ejecutar individualmente. Las clases de prueba también se pueden ejecutar individualmente.

5. Agregue @Test encima del método.

Comando:
1) mvn clean: comando de limpieza, que elimina los datos generados previamente y elimina el directorio de destino.
Complemento: maven-clean-plugin, versión 2.5

2) mvn compile: comando de compilación, compilación del código ejecutado, compila el código java en el directorio src/main/java en un archivo de clase.
Al mismo tiempo, copie el archivo de clase al directorio de destino/clases. Este directorio de clases es el directorio raíz donde se almacenan los archivos de clases (también llamado classpath)

Complemento: maven-compiler-plugin versión 3.1. Complemento para compilar código
maven-resources-plugin versión 2.6. Complemento de recursos para procesar archivos. La función es poner los archivos en el directorio src/main/resources.

Copie el archivo al directorio destino/clases.

3) mvn test-compile: comando de compilación, compila los archivos fuente en el directorio src/test/java y copia las clases generadas en el directorio target/test-classes. Al mismo tiempo, copie los archivos en el directorio src/test/resources al directorio test-class

Complemento: maven-compiler-plugin versión 3.1. Complemento para compilar código

Maven-resources-plugin versión 2.6. Complemento de recursos para procesar archivos.

4) mvn test: comando de prueba, que ejecuta el programa en el directorio de clases de prueba y prueba si el código del programa principal en el directorio src/main/java cumple con los requisitos.

Complemento: maven-surefire-plugin versión 2.12.4

5) Paquete mvn: Empaquetado, la función es colocar los archivos de clase de recursos y los archivos de configuración del proyecto en un archivo comprimido, el archivo comprimido predeterminado es de tipo jar. La aplicación web es de tipo war y la extensión es jar o war.

Complemento: maven-jar-plugin versión 2.4. Ejecutar el procesamiento de embalaje. Genere un archivo con una extensión jar y colóquelo en el directorio de destino.

El archivo empaquetado contiene todas las clases generadas y archivos de configuración en el directorio src/main, que no tienen nada que ver con la prueba.

​ Lo que se genera es ch01-maven-1.0-SNAPSHOT.jar

  <groupId>com.bjpowernode</groupId>
  <artifactId>ch01-maven</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
打包的文件名: artifactId-version.packaging

6) mvn install: instale los archivos empaquetados generados en el repositorio de maven.

Complemento: maven-install-plugin versión 2.4. Instale el archivo jar generado en el almacén local.

Vea el archivo jar que se está viendo:

  <groupId>com.bjpowernode</groupId>
  <artifactId>ch01-maven</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

groupId中的值, 如果有 "." 前和后都是独立的文件夹。 com\bjpowernode
artifactId, 独立的文件夹
version,独立的文件夹

2.7 Complemento de configuración personalizada

En el archivo pom.xml, en la etiqueta de compilación. Complemento de configuración

<!-- 设置构建项目相关的内容 -->
<build>
  <plugins>
    <!-- 设置插件 -->
	<plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-compiler-plugin</artifactId>
		<version>3.8.1</version>
		<configuration>
			<source>1.8</source> <!-- 指定编译代码的jdk版本 -->
			<target>1.8</target> <!-- 运行java程序使用的jdk版本-->
		</configuration>
	</plugin>
  </plugins>
</build> 

Capítulo 3 Integración de Maven y la idea.

3.1 Integrar maven en la idea

Hay un experto incorporado en la idea. Queremos que la idea utilice maven instalado por sí solo.

1) Seleccione el elemento de configuración Configuración de archivo
(La transferencia de la imagen del enlace externo falló. El sitio de origen puede tener un mecanismo anti-leeching. Se recomienda guardar la imagen y cargarla directamente (img-6GbTAULu-1673592488102)(images/image-20201016151034872.png)]
(La transferencia de la imagen del enlace externo falló. El sitio de origen puede tener un mecanismo anti-leeching. Se recomienda guardar la imagen y cargarla directamente (img-yLzlaJJW-1673592488103) (images/image-20201016151528678.png)]
: -DarchetypeCatalog=internal

2) Archivo - Otras configuraciones (La transferencia de la imagen del enlace externo falló. El sitio de origen puede tener un mecanismo anti-leeching. Se recomienda guardar la imagen y cargarla directamente (img-FGMHD3e2-1673592488103)(images/image-20201016151823967.png)]
Mismas configuraciones que arriba

3.2 Crear un proyecto java normal basado en maven(La transferencia de la imagen del enlace externo falló. El sitio de origen puede tener un mecanismo anti-leeching. Se recomienda guardar la imagen y cargarla directamente (img-MdVtJunv-1673593848098) (images/image-20201016161028977.png)]

3.3 Crear proyecto web(La transferencia de la imagen del enlace externo falló. El sitio de origen puede tener un mecanismo anti-leeching. Se recomienda guardar la imagen y cargarla directamente (img-pXqm0EPx-1673593848101) (images/image-20201016170153694.png)]

3.4 Importar módulo a idea(La transferencia de la imagen del enlace externo falló. El sitio de origen puede tener un mecanismo anti-leeching. Se recomienda guardar la imagen y cargarla directamente (img-menDy4Dm-1673593848101)(images/image-20201017085816226.png)]

4. Capítulo 4 Gestión de la dependencia

Alcance de la dependencia: utilice el alcance para indicar el alcance de la dependencia.

El alcance de la dependencia indica: esta dependencia (jar y clases internas) desempeña un papel en qué etapa de la construcción del proyecto.

<dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.12</version>
       <scope>test</scope>
</dependency>

Alcance de la dependencia:

compilar: predeterminado, participa en todas las etapas de construcción del proyecto
prueba: prueba, utilizada en la fase de prueba, por ejemplo, junit se usará para ejecutar la prueba mvn.
​ proporcionado: Proveedor. Cuando el proyecto se implementa en el servidor, no es necesario proporcionar este jar dependiente, pero el servidor proporciona el paquete jar.
(Obviamente dependencias de servlet y jsp)

5. Capítulo 5 Configuraciones comunes

1) Se trata de la configuración en propiedades.

<properties>
<maven.compiler.source>1.8</maven.compiler.source> 源码编译 jdk 版本
<maven.compiler.target>1.8</maven.compiler.target> 运行代码的 jdk 版本
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 项目
构建使用的编码,避免中文乱码
<project.reporting.outputEncoding>UTF-8
</project.reporting.outputEncoding> 生成报告的编码
</properties>

2)Variables globales

Defina una etiqueta en propiedades. Esta etiqueta es una variable y el texto de la etiqueta es el valor de la variable.

Utilice variables globales para representar los números de versión utilizados por múltiples dependencias.

Pasos de uso:

1. En la etiqueta de propiedades, defina una etiqueta para especificar el valor de la versión.

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
  <!--自定义变量-->
  <spring.version>5.2.5.RELEASE</spring.version>
  <junit.version>4.11</junit.version>
</properties>
  1. Utilice variables globales, sintaxis ${nombre de variable}
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>${spring.version}</version>
</dependency>

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>${spring.version}</version>
</dependency>

3) Utilice complementos de recursos

Información sobre el archivo de configuración procesado. Maven procesa el archivo de configuración de forma predeterminada.

①: Maven copiará los archivos en el directorio src/main/resources al directorio target/classes
②: Maven solo procesa los archivos .java en el directorio src/main/java, compila estos archivos java en clases y los copia en el directorio de destino /clases. No se procesan otros archivos.

<build>
  <!--资源插件
      告诉maven把 src/main/java目录中的 指定扩展名的文件 拷贝到 target/classes目录中。
  -->
  <resources>
    <resource>
      <directory>src/main/java</directory><!--所在的目录-->
      <includes>
      <!--包括目录下的.properties,.xml 文件都会扫描到-->
        <include>**/*.properties</include>
        <include>**/*.xml</include>
      </includes>
        <!--  filtering 选项 false 不启用过滤器, *.property 已经起到过
        滤的作用了 -->
      <filtering>false</filtering>
    </resource>
  </resources>
</build>

Supongo que te gusta

Origin blog.csdn.net/Peanut31434331/article/details/128665253
Recomendado
Clasificación