- almacén central - https://mvnrepository.com/
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.xml
ytarget
# Ciclo de Vida
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
1. Crear: mvn arquetipo: generar
mvn archetype:generate -DgroupId=org.test -DartifactId=a-maven-test -DarchetypeArtifactId=maven-archetype-quickstart
mvn
- Comando Corearchetype: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
Puede utilizar el comando DOS: árbol, ver la estructura del proyecto
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
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
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.
4, claro: limpia
directorio de destino clara
Ejecutar el código:mvn clean
"Volver al pasado - el original"
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
Sin embargo, el directorio de destino siguiente, que será más de unos archivos jar / guerra
6, la liberación: instalar
Ejecutar el código:mvn install
Esta información está impresa para cuidar de instalar:
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
.pom
archivo 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 ~
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)
Crear un submódulo
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>