相信不少人接触学习数据库的途中,接触过JDBC
在学习这个JDBC的时候,最先关键的一环,就是引入一个MySQL的jar包。
那么引入jar的包过程,其实呢是比较麻烦的,特别是以后进行项目开发的时候,一个个的引入jar包,那是基本不太可能的,所以,为了解决这些“障碍”,项目管理工具就应运而生了。
那么今天就来分享下,目前较为广泛使用的项目管理工具。
Maven
对于maven是什么?
这里提供一个官方解释:
Maven是Apache软件基金会下的一个开源项目,旨在为开发者提供一个全面的项目开发和管理框架。
maven使用一个标准的目录结构和一个Project Object Model(POM)来描述项目,通过插件来执行编译、测试打包等操作。
所以总的来说,maven的出现是为了让开发人员提高效率,减少bug的出现。
maven的特性是很丰富的
1.简单易用的项目设置:
- 提供了一个标准化的项目结构,简化了新项目的创建过程
- 使用了pom文件(通常指的是pom.xml),定义项目配置和依赖关系。
2.统一的构建系统
- 提供了一组预定义的生命周期阶段 如(compile,test,package,install),使开发者只需调用简单的命令即可完成复杂的构建任务。
- 支持跨平台使用,确保在不同操作系统上的行为一致
3.丰富的依赖管理
- 自动下载并管理项目所需的库(依赖),减少了手动配置的工作量
- 使用中央仓库或自定义仓库来存储和检索依赖项
4.多模块支持
- 允许将项目划分为多个子模块,每个模块可以有自己的POM文件,同时也可以共享父项目的配置
- 支持聚合构建,即可以一次性构建整个项目的所有模块
5.广泛的插件生态系统
- 提供了大量的插件来扩展其功能,包括但不限于编译器插件、报告插件、SCM相关插件等
- 开发者可以根据需要选择合适的插件,或者开发自己的插件来满足特定需求
6.项目信息管理
- 可以生成站点文档,包含关于项目的信息,如依赖列表,单元测试覆盖率报告等
7.发布管理
- 支持项目的发布流程,包括版本控制、发布准备、部署到远程仓库等
由于maven提供的功能和特性很多,所以这里就分享其他的了,小编这里使用更多的功能体现在
项目构建、管理依赖
ok,废话不多说,接下来介绍下如何创建个maven项目吧。
创建maven项目
这里以idea专业版举例
在idea中,点击File—>New—>project
或者
点击new project
进入这个页面后
信息中的name,其实可以随便写,或者你写的有意义点也是可以的
然后location你放到你觉得合适的位置就行,Build system选择maven即可,jdk你选择你电脑配置好的jdk版本
最后点击后面的create就行
进入这个页面,maven项目就当是创建好了。
那么也先别着急去看这个pom文件
接下来 还需要讲一些注意事项。
注意事项
首先点击setting
找到这里
这里可以看到maven的一些基础配置信息
我们看到这个local repository,默认是放在C盘:C:\Users\用户名\.m2
如若是想放在其他盘,那么可以在其他盘中创建个文件夹,然后将整个.m2进行移动
对于这个User setting file而言,maven使用的是idea自带settings文件,所以可以暂时不必去管理。
什么时候会需要呢?
比如当maven从中央仓库拉取依赖的时候,发现多次出现拉去失败,或者拉取缓慢,那么此时呢,就可以找到这个setttings文件,修改下镜像仓库地址,比如使用阿里云的仓库,加快下载。
当然我们可以发现在.m2文件夹中不一定存在这个settings文件,所以我们可以从以下文件路径找到
D:\(安装idea时候放置的目录)\IntelliJ IDEA 2024.1.6\plugins\maven\lib\maven3\conf
上面的maven配置信息中,只是对本项目进行设置的,如若想后续的项目都是使用你修改后的路径
那么可以在代码页面中,点击file->new projects etup
点击settings for new projects
进入该页面后,按照你对本项目是如何设置放置路径的,再放置一遍即可。
设置完这些后,接着来看看maven的一些基础使用
当然这个是指很基础的那种
首先我们点击右边的m
点击lifecycle(生命周期阶段),可以看到很多选项
这里看到会有很多命令,这里我们双击这些命令,就可以执行了,使得开发效率进一步提升。
当然,小编这里对这些命令解释下:
阶段名 | maven命令 | 说明 |
clean | mvn clean | 删除之前构建生成的target目录(清理工作目录) |
validate | Mvn validate | 验证项目是否正确,pom是否完整,例如检查依赖是否存在 |
compile | mvn compile | 编译项目的源码(src/main/java),生成.class文件 |
test | mvn test | 使用JUnit或其他测试框架运行测试代码(src/test/java) |
package | mvn package | 打包jar或war文件,放入target/目录 |
verity | mvn verify | 运行集成测试,检查打包是否符合质量标准 |
install | mvn install | 将打包好的包安装到本地maven仓库供本地项目引用 |
site | mvn site | 生成项目信息网站,包括依赖关系、报告等(需要配置) |
deploy | mvn deploy | 将构建好的包发布到远程仓库(比如Nexus,私服等),供其他人使用 |
当然我们如若在本机进行学习时候,还没进入工作的是,更多会是使用
clean、package、test等命令
同时这些命令是可以组合的,比如
mvn clean package
先清理,再编译、打包
mvn clean install
常用于构建多个项目模块,打完包后装入本地仓库
mvn test
单独运行测试代码
接下来演示下如何使用吧,以package、clean举例
没有点击package
点击package后
此时此刻,左边的项目结构中,多了个target目录,还多了个jar包
然后点击clean后,这个target就会消失
ok,这就是maven命令的简单使用
那么接下来使用简单使用下maven的pom.xml文件吧
简单使用POM.xml
举个例子,比如小编开头所说的引入MySQLjar包
那么使用pom.xml如何引入呢?
我将以下配置信息放到pom.xml中
XML |
有些时候,会显示爆红,但这也没关系。
接着就是最重要的一步,修改pom.xml后一定要进行刷新,此时maven会帮我们自动下载依赖
点击Maven下面的两个箭头的组成的圆圈,同时我们也得注意到左边是没有MySQL8.0的jar包的
此时此刻,我们就可以发现这个包就自动下载下来了。
那么为什么下载这个MySQL的jar包就会多出google的protobuf的jar包呢?
这就涉及到了
传递依赖
传递依赖简单来说呢,当你在pom.xml声明了一个依赖,maven不仅会下载这个依赖,还会自动解析并下载该依赖所依赖的其他所有库。
比如上面的,MySQLjar包中某些库依赖google的protobuf包,所以maven就下载了相关的包。
那么有些时候,我们下载jar多了,可能会有引起依赖冲突,所以我们需要解决这个依赖冲突
但是呢,手动去一个个寻找,一个个写排除依赖语句,我们会发现这是比较慢的,也费点精力,所以此时呢,可以借助一个插件
来进行依赖管理
插件:
下载重启idea后
点击下面的dependency analyze,再点击all Dependencies as tree/list,都可以看到pom.xml引入的依赖
假设此时,要去除掉protobuf依赖,此时右键整个protobuf-Java,选中exclude
(注意修改pom.xml的时候)刷新完maven,最好把这个插件的Refresh UI点击一下
pom.xml文件中,就出现了除去信息,然后更新下pom.xml
最后我们就看到了左边是少了protobuf的jar包。
那么还有个问题,此时如若我想真的彻底删除某个依赖呢?
此时可以这样做:
找到对应的仓库目录先
点击repository
比如我想删除这个mysql,那么此时呢,
按照com.mysql……这样的方式在repository仓库中进行寻找,找到后删除就行
值得注意的是,repository对应的目录下如若有对应的包目录,那也要进行删除。
回过头来,对于刚刚的dependency代码这里呢
这里做出一些简单解释
<dependencies>:
这个是一个容器标签,用于包裹多个依赖项(即多个<dependency>元素)
它表示当前项目的所有外部依赖集合
<dependence>必须要放在容器标签内。
<dependencies>:
它是一个具体的依赖项,表示项目需要的某个外部库和模块
它具有以下的子元素:
<groupId>:定义该依赖所属的组织或项目的唯一标识符
<artifactId>:定义该依赖的具体模块或组件名称
<version>:定义该依赖的具体版本号
通过这以上的三个子元素可以确定唯一的一个外部库在哪了。
<scope>:定义依赖作用范围(如compile、test、runtime>
<optional>:定义该依赖是否为可选依赖
<exclusions>:排除某些传递性依赖
依赖寻找
那么还有一个问题?就是pom.xml文件中的依赖从哪下载呢?
下载顺序:
先从本地仓库寻找,有,就直接返回资源
如若没有呢?那就从中央仓库进行请求,请求成功后,就会保存到本地仓库,
后续继续下载该依赖的时候,就不必再从中央仓库去寻找了。
中央仓库地址如下:
https://repo1.maven.org/maven2/
那么这个中央仓库是全球唯一的,maven构建的项目,默认使用此地址。
当然这个页面是要自己一点点找的,所以有时候相对比较麻烦,页面 也不是很好看。
所以这里介绍一个第三方的依赖搜索网站:
https://mvnrepository.com/
这个网站有着友好的web页面,可以进行关键词搜索,分类依赖筛选
接下来看看我是如何找到刚刚dependency代码的吧
点击搜索
最上两个,第一个代表最新版,第二个代表的是经典版,选择哪个都行
小编这里选择第二个
然后,小编这里选择,8.0的版本,注意大版本要和本地的安装的MySQL要一致
往下滑,就看到maven这里了,此时就可以复制粘贴了。
那么到这里,maven的项目的构建就分享到这里。
接下来分享下,如何创建一个springboot项目
创建Springboot项目
这里以idea2024.1.6专业版为例
这里提供两种方创建
一:通过idea自身创建
1.点击new project
2.点击左边的spring boot
3.看到此页面
这里的name目前可以随便填,location中,找好位置,存放即可
type类型中,选择maven
group和artifact中,想填成自己的也行,或者使用默认的也行
jdk选择自己系统环境变量已经配置好的
packaging中下,选择jar包即可
4.点击next即可
这个页面中,点击左边的web,选择spring web
5.点击create
值得注意的是,如果是第一次创建,这个创建过程会有点慢,因为需要进行依赖包的下载,所以稍等即可
此时呢,看到像这样,就算是创建完毕了
二:通过网站创建
https://start.spring.io/
1.进入该网站
左边的页面内容,按照刚刚idea创建那样,填好就行
2.点击右边的add dependence
点击spring web
3.最后点击下面的create,等待下载
4.找到该压缩包,解压缩你想存放的位置
然后右键该文件夹通过idea打开即可
三:社区版创建:
社区版idea创建springboot项目,有些许麻烦。
这是因为要下载一个springboot helper插件。
在idea中插件搜索可以看到这个插件:
值得注意的是,这个paid,是要我们付费使用,它只有三十天免费期。
当然,我们也可以关注官网,或许不定时放出免费的插件:
官网地址如下:
https://plugins.jetbrains.com/plugin/18622-spring-boot-helper/versions
只要看到free version即可以下载即可
但也是有idea版本限制的,限制在2021.1~2022.1.4
那么这里小编分享下这个插件
地址如下:
链接: https://pan.baidu.com/s/14oGhDC2swBxSJn-A-oMTxA?pwd=bw8r 提取码: bw8r
(有效期过后,可加此联系方式获取:3413168202@qq.com)。
那么下载过后
如何使它生效呢?
1.点击idea插件
2.点击右上角的设置
然后找到你从小编分享的文件后,选择它
重启idea后,就可以创建springboot项目了,项目创建方式与专业版大差不差。
ok,小编就暂且分享到这里