Maven

简介

项目管理工具。 基于项目对象模型(POM), 可以通过一小段描述信息管理项目的构建。

下载与安装

下载地址'https://maven.apache.org/'

新增'M2_HOME'

批注 2019-06-20 131454

%M2_HOME%\bin添加到Path环境变量下

目录结构

一些喜欢忘记的知识点

<properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <encoding>UTF-8</encoding>        <java.version>12</java.version>        <maven.compiler.source>12</maven.compiler.source>        <maven.compiler.target>12</maven.compiler.target></properties>

常用命令

mvn clean # 清理target目录下的类文件mvn install # 将本项目安装到本地仓库mvn compile # 编译mvn test # 执行测试mvn package #打包

添加依赖

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

自动生成目录结构

mvn archetype:generate

坐标与构件

仓库

生命周期

<?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>pom版本</modelVersion>    <groupId>反写的网址+项目名</groupId>    <artifactId>项目名+模块名</artifactId>    <!--    第一个 表示大版本号-->    <!--    第二个 表示分支版本号-->    <!--    第三个 表示小版本-->    <!--    snapshot 快照-->    <!--    alpha 内部测试-->    <!--    beta 公测-->    <!--    release 稳定-->    <!--    GA 正式分布-->    <version>1.0-SNAPSHOT</version>    <!--    war zip pom jar 默认是jar-->    <packaging></packaging>    <name>项目描述名</name>    <url>项目地址</url>    <description>项目描述</description>    <licenses>证书信息</licenses>    <organization>组织信息</organization>    <properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <encoding>UTF-8</encoding>        <java.version>12</java.version>        <maven.compiler.source>12</maven.compiler.source>        <maven.compiler.target>12</maven.compiler.target>    </properties>    <!--    依赖列表-->    <dependencies>        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.12</version>            <scope>test</scope>            <type></type>            <!--设置依赖是否可选 默认false-->            <optional></optional>            <!--排除依赖传递列表-->            <exclusions></exclusions>        </dependency>    </dependencies><!--    依赖的管理-->    <dependencyManagement>        <dependencies>            <dependency>            </dependency>        </dependencies>    </dependencyManagement>    <build>        <plugins>            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-source-plugin</artifactId>                <version>3.0.0</version>                <configuration>                    <attach>true</attach>                </configuration>                <executions>                    <execution>                        <phase>compile</phase>                        <goals>                            <goal>jar-no-fork</goal>                        </goals>                    </execution>                </executions>            </plugin>        </plugins>    </build><!--    父模块-->    <parent></parent><!--    指定多个模块进行编译-->    <modules></modules></project>

依赖范围

批注 2019-06-21 143028

依赖传递

A->B(compile) 第一关系: a依赖b compile B->C(compile) 第二关系: b依赖c compile

依赖冲突

<!--排除B对C的依赖--><dependency>              <groupId>B</groupId>              <artifactId>B</artifactId>              <version>0.1</version>              <exclusions>                 <exclusion>                    <groupId>C</groupId>                      <artifactId>C</artifactId><!--无需指定要排除项目的版本号-->                 </exclusion>            </exclusions></dependency>

聚合与继承

创建web项目