Maven简介
Maven是什么
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(Project Object Model,POM)。
Maven的作用
- 项目构建:提供跨平台的自动化项目构建方式。上图中的构建生命周期/阶段和插件。
- 依赖管理:管理项目依赖的资源,避免资源的版本冲突。上图中的
pom.xml
→项目对象模型→依赖管理→仓库 - 统一开发结构:提供标准的、统一的项目结构
- 普通java项目和javaweb项目的目录结构
Maven的下载与安装
下载地址:Maven官网
Maven属于绿色版软件,下载后解压即安装成功
Maven环境变量配置
- 依赖Java,需要配置
JAVA_HOME
- 设置Maven自身的运行环境,需要配置
MAVEN_HOME
在系统变量中配置MAVEN_HOME
,值为解压目录,然后在Path
中配置%MAVEN_HOME%\bin
在cmd
中输入mvn
命令能够识别,环境变量配置成功
Maven基础概念
仓库
私服可以是中央仓库的镜像,解决中央仓库访问慢的问题,也可以存储自己的私有资源,解决版权问题
坐标
- Maven中的坐标用于描述仓库中jar包的位置
- https://repo1.maven.org/maven2/
- Maven Repository:mvnrepository.com
- Maven坐标组成
- groupId:定义Maven项目隶属组织名称(通常是域名反写,例如:org.mybaatis)
- artifactId:定义Maven项目名称(通常是模块名称,例如:CRM、SMS)
- version:定义项目版本号
- packaging:定义项目的打包方式(jar/war)
图中Maven框中即为junit
的jar包坐标
- maven坐标的作用:唯一的定位jar资源位置,由maven工具自动完成识别和下载
仓库配置
本地仓库配置(资源下到哪)
本地仓库默认位置在C盘用户目录下,可以修改为任意位置。
Default: ${user.home}/.m2/repository
这里,我在maven安装目录下新建一个respository
文件夹,在maven安装目录\conf\settings.xml
中修改本地仓库位置为新建的respository
文件夹
<!--复制第53行到第55行写下修改后的仓库位置--> <localRepository>D:\Tools\apache-maven-3.6.3\respository</localRepository>
此后maven下载的jar包都会下载到修改后的本地仓库地址
远程仓库配置(资源从哪来)
远程中央仓库默认地址为国外服务器,可以设置国内镜像源,当需要访问中央仓库下载资源时,到设置的国内镜像源地址下载
在maven安装目录\conf\settings.xml
中设置镜像源。这里,我设置镜像资源为阿里云。
<!--复制152行~157行到159行写下镜像源配置--> <mirror> <!--镜像的唯一标识符,用来区分不同的mirror元素--> <id>aliyun</id> <!--对哪种仓库进行镜像--> <mirrorOf>central</mirrorOf> <!--镜像名称--> <name>aliyun</name> <!--镜像URL--> <url>https://maven.aliyun.com/repository/central</url> </mirror>
第一个Maven项目(手工制作)
Maven工程目录结构
java
中写java源程序
;resources
中写配置文件
在src
同层目录下创建pom.xml
文件
项目有坐标,资源有坐标
Maven项目构建命令
在src
同层目录下执行
mvn compile #编译 mvn clean #清理 mvn test #测试 mvn package #打包 mvn install #安装到本地仓库
- 执行编译命令,编译完成后会生成
target
文件夹,里面存放编译生成的文件(.class
字节码文件等) - 执行清理命令,删除
target
文件夹 - 执行测试命令,在
target
文件夹中生成surefire-reports
文件夹,存放测试报告 - 执行打包命令,在
target
文件夹中生成项目文件的jar包/war包;打包命令中包含编译和测试命令 - 执行安装命令,会将项目jar包安装到本地仓库
插件创建工程
创建前文件夹为空目录
创建java工程
mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false
创建web工程
mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false
第一个Maven项目(IDEA生成)
创建Java项目
打开IDEA,选择new project
,创建Maven管理的java工程
填写项目坐标
配置Maven
目录结构
可以手动加入resources
文件夹后,右键文件夹选择Mark Directory as
这里我点击new directory
后,IDEA就已经可以选择创建resources
文件夹了,IDEA还是比较智能滴~
创建Web项目
填写项目坐标
配置Maven
目录结构
可以手动加入test
和main\java
文件夹后,右键文件夹选择Mark Directory as
这里我点击new directory
后,IDEA就已经可以选择创建test\java
、test\resources
、main\java
文件夹了
添加后的目录结构
Tomcat插件安装
删除web.xml
中暂时用不到的内容
删除后的web.xml
:
删除pom.xml
中暂时用不到的内容
删除后的pom.xml
:
安装Tomcat插件
在maven坐标库中搜索tomcat
的坐标
复制中间三行到pom.xml
中
<!--构建--> <build> <!--设置插件--> <plugins> <!--具体的插件配置--> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> </plugins> </build>
在IDEA右侧栏Maven
处,可以快速启动tomcat
默认启动路径为
http://localhost:8080/项目名/
可以在pom.xml
中修改端口号和虚拟路径
<build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>80</port> <path>/</path> </configuration> </plugin> </plugins> </build>
建议通过在右上角add configuration
处配置运行环境来启动Tomcat插件
依赖管理
依赖配置
依赖范围
生命周期与插件
项目构建生命周期
插件