Maven
一款管理和构建Java项目的工具。
- 依赖管理方便
- 项目架构统一
- 跨平台兼容
Maven坐标:
资源的唯一标识,通过该坐标可以唯一定位资源的位置。
也可以使用坐标来定义项目或引入项目中需要的依赖。
主要组成部分
- groupid:组织名称,通常是域名反写
- artifactid:项目/模块名
- version:定义当前项目版本号
依赖管理
导入所需要的jar包
配置过程:
- 打开pom.xml,前新增
标签 - 在
中使用 引入坐标 - 填写上面提到的三种坐标
- 刷新(右上角小m按钮)即可从库中导入。
<dependencies>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.10</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
不知道具体坐标信息,可以从百度mvnrepository,在网站中搜索选择版本,复制过来就可以了。
依赖传递
依赖可以分为两类,直接和间接。
直接就是当前maven模块下导入的依赖,简介就是已经导入的依赖中所导入的依赖,可以理解为俄罗斯套娃,大依赖套小依赖。
大依赖被导入进去时小的依赖也会被导入,这就是依赖传递。
如果想查看具体依赖内容可以点击idea右侧栏的M字符,在当前项目下展开依赖项,逐层展开就会得到一棵依赖树。
依赖范围
当不刻意规定依赖范围时,依赖会默认作用于所有地方,这些“地方”可以分为三类。
- 主程序范围(main文件夹范围)
- 测试程序范围(test文件夹范围)
- 是否参与打包(package指令范围)
如果想限制范围,需要在添加依赖的部分用标签注明,如下:
<dependency>
/*三种坐标
*...
*/
<scope>...</scope>
</dependency>
标签中间的值主要有四种:

生命周期
maven中有三套相互独立的生命周期:
-
clean:清理工作
-
default:核心工作,包括编译测试打包安装部署等
-
site:生成报告,发布站点等
每套生命周期包含一些顺序固定的阶段,后面阶段运行时前面阶段也会运行。
在许多阶段中,我们主要关注五个阶段:
- clean:移除上一次构建生成的文件
- compile:编译源代码
- test:使用合适的单元测试框架进行测试(junit)
- package:将编译后的文件打包,格式如jar、war等
- install:安装项目到本地仓库
运行方式
- idea右侧maven工具栏选中,双击执行。
- 命令行中 mvn xxx执行
实际上,在生命周期阶段的执行过程中,一切行为都是由插件(Plugins)完成的,在右侧m功能区,也可以看到,上半部分为LifeCycle,下半部分为Plugins。
浙公网安备 33010602011771号