下载安装

  • 官网:https://maven.apache.org/
  • 下载地址:https://maven.apache.org/download.cgi

环境变量配置

  • 依赖 Java,需要配置 JAVA_HOME
  • 配置 MAVEN_HOME
  • 测试:​​mvn​

配置

更改本地仓库位置

  • ​settings.xml​
<localRepository>仓库位置</localRepository>

镜像仓库配置

  • ​setting.xml​
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>

Maven 命令

  • 编译命令:​​mvn compile​
  • 清理命令:​​mvn clean​
  • 测试命令:​​mvn test​
  • 打包命令:​​mvn package​
  • 安装到本地仓库:​​mvn install​

Maven 工程

插件创建工程

  • 创建工程
mvn archetype:gengrate
-DgroupId={project-packaging}
-DartifactId={project-name}
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
  • 创建 Java 工程
mvn archetype:generate -DgroupId=com.ruochen -DartifactId=java-project -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false
  • 创建 web 工程
mvn archetype:generate -DgroupId=com.ruochen -DartifactId=web-project -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false

IDEA 创建 Maven 工程

  • 创建一个 Empty Project
  • 在 settings 中修改为自己的路径
  • Maven 入门教程_生命周期

  • 创建一个 maven module
  • Maven 入门教程_java_02


  • Maven 入门教程_Java_03


  • Maven 入门教程_maven_04

骨架创建 Maven 工程

  • new module
  • Maven 入门教程_Java_05

Web 工程

  • new module
  • Maven 入门教程_生命周期_06

依赖管理

  • 依赖传递
  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
  • 依赖传递冲突问题
  • 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
  • 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
  • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
  • 依赖范围
  • Maven 入门教程_web_07

  • 依赖范围传递性
  • Maven 入门教程_生命周期_08

生命周期与插件

构建项目生命周期

Maven 入门教程_Java_09

  • clean:清理工作
  • pre-clean:执行一些需要在clean之前完成的工作
  • clean:移除所有上一次构建生成的文件
  • post-clean:执行一些需要在clean之后立刻完成的工作
  • default:核心工作,例如编译、测试、打包、部署等
  • Maven 入门教程_maven_10

  • site:产生报告,发布站点等
  • Maven 入门教程_java_11

插件

  • 插件与生命周期内的阶段绑定,在执行到对应的生命周期时执行对应的插件功能
  • 默认maven在各个生命周期上绑有预设的功能
  • 通过插件可以自定义其他功能
  • eg
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
<phase>generate-test-resources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>