第3篇:坐标和依赖详解
maven系列目标:从入门开始开始掌握一个高级开发所需要的maven技能。**
这是maven系列第3篇。
我们先来回顾一下什么是maven?
maven是apache软件基金会组织维护的一款自动化构件工具,专注服务于java平台的项目构件和依赖管理。
预备知识
-
Maven系列:第1篇:Maven未出世前,我们那些痛苦的经历!
-
Maven系列第2篇:安装、配置、mvn运行过程详解
本文主要内容
-
感受一下maven的效果
-
maven约定配置
-
maven中pom文件
-
maven坐标
-
maven依赖导入功能
-
maven依赖范围详解
-
maven依赖的传递
-
maven中依赖调解功能
-
可选依赖(optional元素)的使用
-
排除依赖的使用
先来感受一下maven的神奇
安装maven3.6.10
上篇文章中安装的是Maven3.6.2版本,这个版本在运行过程中会有一些问题,请大家按照上一篇文章的介绍重新安装3.6.1版本。
idea中配置maven
先说几句,如果你使用的是eclipse,建议你去尝试使用一下idea,非常优秀的一款开发工具,后面我们一直采用idea作为开发工具来讲解案例,建议大家也使用这个。
打开idea,点击File->setting
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-seZhQdcO-1629908465204)(media/e1d992bc338810c052f4a7f2b1764097.png)]
按照如下配置maven的信息,点击“ok”,idea中maven配置完成
注意"Maven home directory"选择我们上面安装的3.6.1
User settings file 和 Local repository 我们使用用户级别的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vUlRshrf-1629908465208)(media/79371c7b4f1f0bef70124d59c4f15eac.png)]
使用mven创建一个springboot项目
我们来创建一个web项目,然后输出一句话,我们采用maven的方式来创建看看有多简单。
打开idea,点击File->New->Project,选择Spring Initializr,如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8JDmQPwi-1629908465211)(media/77d509d065961b4a8178ee7e4d7497ab.png)]
点击"Next",如下图,按照图中的信息输入,点击"Next":
咱们先不用关注需要输入的信息具体是什么意思,后面会讲解。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-64Hc8fRx-1629908465214)(media/88aaa408e932017b0995ac0a3d9d8eed.png)]
选择springboot版本,勾选"Lombook"、“Spring Web”,如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hu24luCN-1629908465217)(media/30a6e97e72f033b8b1f5893cbb86d3c0.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iH3YC2Gi-1629908465218)(media/650e13f12207508111c5ade4406f0930.png)]
点击"Next"->"Finish"完成springboot项目的创建,如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PJ4WvTSQ-1629908465220)(media/2ea6ff97af2eb20e425f1dad99a25f3e.png)]
删掉下图中无关的文件
按住Shift健,多选,然后点击Del健删除。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bMnbLKnJ-1629908465222)(media/eb32d4b58eac6e199f2bf6cca79aeaba.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yXAhGBkC-1629908465223)(media/0b6aeeca0094392626fb87e40e00cfb7.png)]
新建一个Controller类:
com.javacode2018.controller;
org.springframework.web.bind.annotation.RequestMapping;
org.springframework.web.bind.annotation.RestController;
@RestController
IndexController {
@RequestMapping("")
String index() {
"你好,欢迎你和【马士兵老师】一起学些Maven相关技术!";
}
}
springboot-chat01目录中打开cmd窗口,执行下面命令
mvn spring-boot:run
cmd中输出如下:
D:\code\IdeaProjects\springboot-chat01>mvn spring-boot:run
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------< com.javacode2018:springboot-chat01 >-----------------
[INFO] Building springboot-chat01 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] >>> spring-boot-maven-plugin:2.2.1.RELEASE:run (default-cli) > test-compile @ springboot-chat01 >>>
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ springboot-chat01 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ springboot-chat01 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to D:\code\IdeaProjects\springboot-chat01\target\classes
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ springboot-chat01 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\code\IdeaProjects\springboot-chat01\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ springboot-chat01 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to D:\code\IdeaProjects\springboot-chat01\target\test-classes
[INFO]
[INFO] <<< spring-boot-maven-plugin:2.2.1.RELEASE:run (default-cli) < test-compile @ springboot-chat01 <<<
[INFO]
[INFO]
[INFO] --- spring-boot-maven-plugin:2.2.1.RELEASE:run (default-cli) @ springboot-chat01 ---
[INFO] Attaching agents: []
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | &#