文章目录
1、Maven介绍
Maven是基于项目对象模型(POM),可以通过一小段信息来管理项目的构建、报告和文档的软件项目管路工具。
2、Maven环境搭建
访问Maven官网,点击列表左侧的Download。
点击下载:apache-maven-3.6.3-bin.zip
将下载好的apache-maven-3.6.3-bin.zip解压到当前目录,打开目录。
在计算机上右键属性,选择高级系统设置,环境变量。选择系统变量,点击新建,在弹出的新建系统变量中填写maven目录信息,点击确定。
选中path点击编辑,在新弹出来的编辑环境变量中点击新建,填入 %M2_HOME%\bin 后点一路击确定即可。
打开命令行窗口,输入mvn -v
如果此时显示如下信息,则配置成功(Maven版本号、Java版本号、操作系统的相关信息等)
3、Maven目录结构
4、Maven常用命令
No | 命令 | 解释 |
---|---|---|
1 | mvn -v | 查看maven版本 |
2 | compile | 编译 |
3 | test | 测试 |
4 | package | 打包 |
5 | clean | 删除target |
6 | install | 安装jar包到本地仓库 |
5、archetype插件
archetype插件用于创建符合maven规定的目录骨架。在命令窗口输入:mvn archetype:generate -DgroupId=com.gub -DartifactId=maven-test -Dversion=1.0.0SNAPSHOT -Dpackage=com.gub.maven -DarchetypeCatalog=internal
,首次使用maven会自动下载所需要的jar包,随后根据其引导创建项目项目目录骨架。
参数含义如下:
No | 可选参数 | 值 |
---|---|---|
1 | -DgroupId | 组织名、公司网址的反写+项目名 |
2 | -DartifactId | 项目名-模块名 |
3 | -Dversion | 版本号 |
4 | -Dpackage | 代码所存在的包 |
6、坐标和仓库
坐标即是项目的表示,groupId和artifactId都可以构成项目的坐标。
仓库用于管理项目的依赖,其分为两种:本地仓库和远程仓库,如果在本地仓库中找不到构件,则在全球的中央仓库中下载构件到本地仓库。
在maven安装目录中找到lib目录,打开lib\maven-model-builder-3.6.3.jar\org\apache\maven\model\pom-4.0.0.xml文件。
在中央仓库中搜索。
镜像仓库即功能相同的仓库,由于maven一些仓库在国外,在国内无法访问,因此只能访问国内的镜像仓库,并且更快更稳定。打开maven安装目录,找到conf/settings.xml文件并打开,在mirrors标签中找到mirror子标签。
<mirrors>
<!--使用阿里镜像仓库-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
在maven工作目录新建repo文件夹,用于保存maven仓库。继续在settings.xml文件修改,并复制settings.xml文件到repo文件夹中
<!--仓库保存位置-->
<localRepository>E:/mavenpro/repo</localRepository>
7、Eclipse配置maven
选择新建Maven项目,依次填好信息。
配置maven路径:选择窗口–>首选项–>Maven–>Installations,点击添加,选中maven安装根目录,点击确定。
设置maven的settings.xml文件,选择窗口–>首选项–>Maven–>User Settings,点击浏览,选中settings.xml文件,点击应用。
测试maven:右键pom.xml文件–>运行方式–>Maven build–>输入compile命令运行。
8、pom.xml常用元素
基本元素:
No | 元素 | 描述 |
---|---|---|
1 | project | pom.xml文件的根元素,包含约束信息 |
2 | modelVersion | 指定当前pom.xml的版本 |
3 | groupId | 主项目的表示(公司网址的反写+项目名) |
4 | artifacted | 项目模块的表示(项目名+模块名) |
5 | version | 当前项目的版本号(一般由3个数字组成:大版本号.分支版本号.小版本号) |
6 | packaging | 指定maven项目打包的方式,默认是jar |
7 | name | 项目描述名 |
8 | url | 项目地址 |
9 | description | 项目描述 |
10 | developers | 开发人员列表 |
11 | licenses | 许可证信息 |
12 | organization | 组织信息 |
依赖链:
No | 元素 | 描述 |
---|---|---|
1 | dependencies | 依赖列表,内部包含多个依赖项 |
2 | dependency | 依赖项,使用groupId、artifacted、version、type确定依赖所在位置 |
3 | scope | 依赖范围 |
4 | optional | 设置依赖是否可选,取值为true和false,默认为false |
5 | exclusions | 排除依赖传递列表,包含多个exclusion标签 |
6 | dependencyManagement | 依赖管理,里面的dependencies不会实际使用 |
7 | build | 为构件的行为提供相应的支持,里面经常包含plugins(插件列表) |
8 | plugin | 插件标签,plugins的子标签,里面包含插件信息(groupId、artifacted、version) |
9 | parent | 在子模块中对父模块pom的继承 |
10 | modules | 聚合运行多个module项。 |
9、maven依赖范围
maven中的依赖范围主要是控制与三种classpath的关系:编译(compile)、测试(test)、运行(run),在官方文档可以发现,maven提供有6种依赖范围。