Maven与Springboot创建

相信不少人接触学习数据库的途中,接触过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
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
</dependency>
</dependencies>

有些时候,会显示爆红,但这也没关系。

接着就是最重要的一步,修改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,小编就暂且分享到这里

### 使用Maven创建Spring Boot项目 为了使用Maven创建Spring Boot项目,需满足一定的环境要求。具体来说,需要安装JDK 1.8版本及以上和Maven 3.6.0版本以上的软件工具[^1]。 #### 创建Spring Boot项目 在Eclipse环境中,通过Maven插件可以方便地初始化一个新的Spring Boot项目: 1. **新建Maven Project** - 打开Eclipse IDE。 - 导航到`File -> New -> Other...`选项卡下选择`Maven -> Maven Project`。 2. **配置POM文件** ```xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>demo-project</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.0</version> <relativePath/> <!-- lookup parent from repository --> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 测试依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> </project> ``` 这段XML定义了一个基本的Spring Boot应用程序结构,并引入了Web支持和其他必要的测试库。 #### 配置Maven最佳实践 对于任何基于MavenSpring Boot项目而言,遵循一些通用的最佳实践非常重要: - **保持父级POM最新**:始终确保使用的`spring-boot-starter-parent`是最新的稳定版,这有助于获得最新的安全更新和支持特性。 - **管理依赖关系**:利用BOM(Bill of Materials)来统一管理和控制第三方库及其版本号,减少冲突的可能性。 - **优化构建性能**:可以通过调整`settings.xml`中的参数或是在命令行上指定额外的参数如`mvn clean install -T 4C`加速多模块项目的编译过程[^2]。 - **启用离线模式**:当网络连接不稳定时,可以在本地缓存中查找所需的构件而不是每次都尝试在线下载;只需简单地添加`--offline`标志给Maven命令即可实现这一点。 - **编写清晰易懂的文档说明**:为团队成员提供详细的README.md或其他形式的技术文档,解释如何设置开发环境、运行单元测试以及其他重要的操作指南[^3]。 最后,在主类中加入`@SpringBootApplication`注解以标记这是一个标准的Spring Boot应用,并调用`SpringApplication.run()`方法启动程序实例[^4]。 ```java package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoProjectApplication { public static void main(String[] args) { SpringApplication.run(DemoProjectApplication.class, args); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值