¿Sabe realmente Maven? (Estructura del proyecto, ciclo de vida, la versión unificada, la gestión de la herencia)

Conceptos básicos:

# coordenadas dependientes

Dependencia: proyecto en marcha y funcionando paquete jar necesarios

Coordenadas: empacar una gran cantidad del mismo frasco, que desea.
(Dependientes, designados, ID, versión)

# Almacén

almacén central, almacén de terceros, local de almacén

# Estructura del proyecto

La principal preocupación, pom.xmlytarget

Aquí Insertar imagen Descripción

Aquí Insertar imagen Descripción

# Ciclo de Vida

Aquí Insertar imagen Descripción

Del ciclo de vida extraña 冒险

Formar la línea de comandos, experimentar rápidamente todo el ciclo de vida del experto

Requisito previo: Configurar experto
Aquí Insertar imagen Descripción

1. Crear: mvn arquetipo: generar

mvn archetype:generate -DgroupId=org.test -DartifactId=a-maven-test -DarchetypeArtifactId=maven-archetype-quickstart
  • mvn - Comando Core
  • archetype:generate - Crear proyecto
  • -DgroupId=org.test - el texto del nombre del paquete
  • -DartifactId=a-maven-test - Nombre del proyecto
  • -DarchetypeArtifactId=maven-archetype-quickstart - representa la creación de un proyecto [experta] java
    Aquí Insertar imagen Descripción

Puede utilizar el comando DOS: árbol, ver la estructura del proyecto

Aquí Insertar imagen Descripción

2. Compilar: compilación

El archivo se compila bajo src / salida principal / java en el directorio de destino para la próxima los archivos de clases

Ejecutar el código:mvn compile

Aquí Insertar imagen Descripción

3, prueba: prueba

Unidad de realizar en la clase de prueba src / test / java, informe de prueba generación

Ejecutar el código:mvn tset

Aquí Insertar imagen Descripción
Informe de la prueba (a continuación), un éxito récord de ejecución, el fracaso, la situación se omite, el entorno de prueba.

Aquí Insertar imagen Descripción

4, claro: limpia

directorio de destino clara

Ejecutar el código:mvn clean

"Volver al pasado - el original"

Aquí Insertar imagen Descripción

5, Paquete: Paquete

Para el proyecto de Java empaquetado en el paquete jar para el proyecto web empaquetado en el paquete de la guerra

Ejecutar el código:mvn package

Generando el directorio de destino, estructuralmente igual para compilar + prueba

Aquí Insertar imagen Descripción

Sin embargo, el directorio de destino siguiente, que será más de unos archivos jar / guerra
Aquí Insertar imagen Descripción

6, la liberación: instalar

Ejecutar el código:mvn install

Esta información está impresa para cuidar de instalar:
Aquí Insertar imagen Descripción

Por ejemplo es:

  • El frasco de implementar el paquete en un C:\\User\\uu\\.m2\\repository\\..............directorio (que es, en mi almacén local)
  • El pom.xml empaquetado en un .pomarchivo con la extensión, sino también en mi repositorio local.

Entonces, después de

  • Otros proyectos dependen de este proyecto, se puede confiar para obtener de un local de almacén -
  • Nos basamos en el almacén local publicados en línea, otras personas también pueden utilizar el ~

Aquí Insertar imagen Descripción

versión unificada, la gestión de la herencia

Establecer un proyecto maven tipo pom
de la dirección única y dependiente de la versión

Crear un proyecto de matriz vacía(Al igual que el directorio src suprimido)
Aquí Insertar imagen Descripción
Crear un submódulo
Aquí Insertar imagen Descripción

módulos padre declaración del pom y el niño escritos

    ...
    
    <!--父模块声明-->
    <packaging>pom</packaging>
    <!--子模块-->
    <modules>
        <module>demo-child</module>
    </modules>
	...

Por último,
Padre módulos versión unificada
versión sub-módulo heredado

módulo padre

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <!--模板版本-->
    <modelVersion>4.0.0</modelVersion>
    <!--组织名-->
    <groupId>com.spring</groupId>
    <!--项目名-->
    <artifactId>demo</artifactId>
    <!--项目版本-->
    <version>1.0-SNAPSHOT</version>

    <!--父模块声明:不能进行任何的代码逻辑-->
    <packaging>pom</packaging>
    <!--子模块-->
    <modules>
        <module>demo-child</module>
    </modules>

    <!--统一版本号-->
    <properties>
        <!--版本(标签名自定义)-->
        <spring-boot>2.2.5.RELEASE</spring-boot>
    </properties>

    <!--依赖们的管理-->
    <dependencyManagement>
        <!--一堆依赖-->
        <dependencies>

            <!--一个依赖-->
            <dependency>
                <!--组织-->
                <groupId>org.springframework.boot</groupId>
                <!--坐标名称-->
                <artifactId>spring-boot-starter</artifactId>
                <!--版本:交给properties统一管理-->
                <version>${spring-boot}</version>
            </dependency>

            <!--按住Alt+Insert插入依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>${spring-boot}</version>
            </dependency>
            
			<!--推荐:idea的 maven-helper 好用到怀疑eclipse-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <!--也能直接直接版本-->
                <version>3.8.1</version>
                <!--仅test生命周期使用-->
                <scope>test</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

</project>

Submódulo

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <!--父模块的坐标。如果项目中没有归档某个元素的值,那么就从父模块中找值-->
    <parent>
        <artifactId>demo</artifactId>
        <groupId>com.spring</groupId>
        <version>1.0-SNAPSHOT</version>
        <!--模块间的相对位置,闭合标签默认为上一级文件夹内-->
        <relativePath/>
    </parent>
    <!--POM文件的模型版本。很少改变,必不可少。设计的初衷是为了引入Maven新特性和稳定性-->
    <modelVersion>4.0.0</modelVersion>

    <artifactId>demo-child</artifactId>

    <!--项目打包时候的类型。例如:(这里使用的)jar/war/(父项目的)pom/ear...-->
    <packaging>jar</packaging>

    <!--项目的名称,Maven产生的文档用-->
    <name>child-demo</name>
    <!--项目主页的URL,Maven产生的文档用-->
    <url>https://www.baidu.com</url>
    <!--项目的描述。Maven产生的文档用-->
    <description>A maven project to study maven.</description>


    <dependencies>
        <!--一个依赖:引用父组件的版本-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <!--不需要指定版本-->
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

Aquí Insertar imagen Descripción

Publicados 501 artículos originales · ganado elogios 112 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/LawssssCat/article/details/104901174
Recomendado
Clasificación