Maven笔记
- 啥是Maven?
- Maven是工具的名字,这个工具可以管理和构建Java项目
- 那Maven具体怎么管理和构建Java项目?
- 它提供了一套标准化的项目结构
- 还提供了一套标准化的构建流程,从编译到测试,到打包,再到发布等
- 还提供了一套依赖管理的机制
- 啥是依赖呀?依赖就是项目所依赖的第三方资源,比如jar包啥的,之前用的JDBC和Druid都是依赖包。
- 那依赖的jar包都放在哪里呢?放在仓库中,而仓库分为三种,分别是本地仓库(自己电脑上),中央仓库(Maven团队维护的全球唯一仓库 https://repo1.maven.org/maven2/)和远程仓库(私服,一般由公司团队自己搭建的私有仓库)。
- 当引入对应依赖的jar包后,首先会在本地仓库中查找是否有对应的jar包,如果有就直接引用,如果没有,就会去中央仓库下载到本地。如果有私有仓库的话,那么会先去私有仓库下载,私有仓库没有再去中央仓库。
- Maven使用坐标来管理管理各种依赖
-
坐标是资源的唯一标识
-
使用坐标定义项目或者引入项目中需要的依赖
-
坐标的组成:
- groupId:定义当前Maven项目隶属组织名称(通常是域名反写)
- artifactId:定义当前Maven项目名称(通常是模块名称)
- version:定义当前项目版本号
-
坐标中引入jar包步骤
-
在项目的 pom.xml 中编写 标签
-
在 标签中 使用 引入坐标
-
定义坐标的 groupId,artifactId,version
-
-
坐标依赖范围(scope)
-
compile :作用于编译环境、测试环境、运行环境。
-
test : 作用于测试环境。典型的就是Junit坐标,以后使用Junit时,都会将scope指定为该值
-
provided :作用于编译环境、测试环境。我们后面会学习
servlet-api
,在使用它时,必须将scope
设置为该值,不然运行时就会报错 -
runtime : 作用于测试环境、运行环境。jdbc驱动一般将
scope
设置为该值,当然不设置也没有任何问题如果不指定scope,默认是compile
-
- Maven的安装和配置
-
解压 apache-maven-3.6.1.rar 既安装完成
-
配置环境变量
-
配置本地仓库:修改 conf/settings.xml 中的 为一个指定目录作为本地仓库,用来存储jar包
-
配置阿里云私服(因为中央仓库在国外,访问下载很慢):
修改 conf/settings.xml 中的 标签,为其添加如下子标签:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
- Maven常用命令:
compile :编译
clean:清理
test:测试
package:打包
install:安装
- 如何使用?在对应项目(有pom.xml那里)shfit+右键打开powershell。
- 输入 mvn compile即可。输入后会得到target文件,里面是编译好的字节码。
- 输入 mvn clean,会清理掉生成的target文件
- 输入 mvn package,会把项目打包成jar包
- 输入 mvn test,会执行test目录下的测试代码
- 输入 mvn install,会把项目打成jar包并安装到本地仓库中
-
Maven生命周期
- maven生命周期描述了一次构建过程经历了多少事件。
- 三套生命周期
- clean:清理
- default:核心工作,如编译、测试、打包、安装等
- site:产生报告、发布站点等,一般不用这套生命周期
- 在同一套生命周期内,若执行后面的命令,则前面的命令都会自动执行,如compile→test→package→install,若执行install,则会把前面的命令都执行。