基础补漏之Maven项目管理

「这是我参与2022首次更文挑战的第21天,活动详情查看:2022首次更文挑战

Maven环境安装

首先我的操作系统是window10,选择IDEA作为我的编辑器。Ubuntu也没关系,都是一样的,因为如果我们使用idea的话,它里面内置了一个maven,所以基本上,你不需要做额外的工作,当然除非你不满意当前的maven版本,如果满意,那么你可以选择配置idea的maven为本地maven。(PS 我这里是2021版本的,自带的是3.6.3)

打开你的idea,打开设置,找到maven,里面所有的参数都有说明。

image.png

之后是找到我们idea里面的maven,找到你安装目录(idea的)

image.png

image.png

此时你也可以选择把这个maven复制提取出来,我这里就懒得去搞了。

image.png

然后你配置环境变量,就可以把这玩意当做系统的来用了。

image.png

image.png

然后就行了,验证一下

image.png

那么基础的环境其实就行了。

之后是配置一下镜像,也就是仓库。这个也是直接在config里面 就能配置。

image.png

image.png

可以看到我这里是配置了阿里云,当然你还可以修改那个你本地仓库的地址。

或者,你直接在idea里面设置。

image.png

这个是默认的,在idea里面也能看到

image.png

所以的话这个就不多说了,这些东西都是能百度的,在这里记录没有任何意义可言。

项目结构

我们直接在idea里面创建maven项目,那么之后整个项目长这个样子。

image.png

右侧是各种插件

image.png

Maven命令

这个咋说呀,这个看到这个

image.png

这里有几个玩意,那么我们的maven就有几个指令,直接在你的项目根目录下执行 例如

mvn compile 进行编译

那么基本上想要用Maven是很简单的,但是我这里主要想要说的根本就不是这个,我想说的是各种配置依赖之类的玩意,这个在springboot 的微服开发阶段那些配置还是很重要的。

当然你们可能要说,我这个和idea绑定地太厉害了,我想说的是,任何一款编辑器基本上都有这种类型的插件帮助你这样快速构建项目。你IDEA收费,那就用VScode 这个也一样,我原来就是用VSCode写java的 而且maven官方自己是提供这个插件去生成这个项目的。

(当然人家要求java11以上版本,老版本那个插件用不了了,我原来Ubuntu就是vscode,当然你非要杠用vim那我也没辙,以前我挺喜欢折腾的什么arch linux,什么其他的玩意,但是那玩意都是花活,怎么方便怎么来,毕竟就是一个工具,能体现一个程序员高低的,除了算法,和解决问题的能力我看不出问别的有什么太大作用,除非我要求就这个某一个东西很重要例如必须对spring要有骨灰级理解,这个岗位可能要造自己的轮子。否则我真觉得没什么意义,否则,那种公司我也不会去,那就是个业务“搬运”公司)

Pom文件

我们的重点就是我们的pom文件 前面我们会用 idea创建一个标准的maven项目,那么接下来就重点说说这个pom文件

这个就是一个标准的pom文件 image.png

当然这里还有很多细节的操作,我就被不说了,完全是可以百度的,我的博文是以我自己为导向的,仅仅只是当中云笔记使用。

依赖关系

依赖传递

首先是兄弟工程之间的依赖。 还记得这个玩意不

<groupId>org.example</groupId>
<artifactId>SpringFrame</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
复制代码

这个一开始只是声明我们自己的项目,那么在兄弟工程里面,这个可以直接拿来用。当做依赖。

image.png 之所以能这样干还是因为你的本地仓库里面有这个玩意呗。

当然他们之间也是存在一个优先级别的 image.png

可选依赖

有时候,我们不要全部,或者说,这个不想让别人知道我用来那些东西,那我就可以这样。

image.png

依赖范围

这个其实很重要的,例如我们有些玩意是不用的,或者打包的时候不要,或者test文件不能用。

image.png

image.png

生命周期

这里补充一下完整的项目周期是这样的

image.png

那么基本上这个是最基本的使用,和了解,当然这里屏蔽了很多细节(我懒得写,也没必要,用了就知道)

后面还有模块的拆分,聚合等等,这些要结合具体的项目了,我这里没法说。

猜你喜欢

转载自juejin.im/post/7062980582145277960