SpringBoot(一)--- Maven基础

目录

前言

一、初始Maven

1.依赖管理

2.项目构建

3.统一项目结构

二、IDEA集成Maven

1.Maven安装

2.创建Maven项目

2.1全局设置

[2.2 创建SpringBoot项目](#2.2 创建SpringBoot项目)

[2.3 常见问题](#2.3 常见问题)

三、单元测试

1.JUnit入门

2.断言


前言

Maven 是一款用于管理和构建Java项目的工具,是Apache旗下的一个开源项目 。

一、初始Maven

1.依赖管理

我们在使用Maven之前,我们项目中要想使用某一个jar包,就需要把这个jar包从官方网站下载下来,然后再导入到项目中。然后在这个项目中,就可以使用这个jar包了。

但是我们在使用Maven之后,我们只需要在maven项目的pom.xml文件中,添加一段如下图所示的配置即可实现。配置项被称作依赖,下面的例子配置的是hutool依赖,专门用来进行文件操作的。

2.项目构建

Maven提供了标准化的跨平台的自动化构建方式。我们可以从IDEA右侧M图标那里直接进行编译、测试、打包等操作。

通过Maven中的命令,就可以很方便的完成项目的编译(compile)、测试(test)、打包(package)、发布(deploy) 等操作。

而且这些操作都是跨平台的,也就是说无论你是Windows系统,还是Linux系统,还是Mac系统,这些命令都是支持的。

3.统一项目结构

在上面的maven项目的目录结构中,main目录下存放的是项目的源代码,test目录下存放的是项目的测试代码。 而无论是在main还是在test下,都有两个目录,一个是java,用来存放源代码文件;另一个是resources,用来存放配置文件。

二、IDEA集成Maven

Maven的下载地址:https://maven.apache.org/download.cgi,下载zip压缩文件即可。

1.Maven安装

首先,解压Maven安装包,建议解压到没有中文、特殊字符的路径下。

然后在自己计算机上新一个目录mvn_repo(本地仓库,用来存储jar包)

然后进入到conf目录下修改settings.xml配置文件,打开settings.xml文件,定位到53行,复制**<localRepository>** 标签,然后复制之前新建的用来存储jar包的路径,替换掉<localRepository>标签体内容。

然后定位到160行左右,在<mirrors>标签下为其添加子标签<mirror>,内容如下:

XML 复制代码
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

最后是配置环境变量,在系统变量处新建一个变量MAVEN_HOME。 MAVEN_HOME环境变量的值,设置为maven的解压安装目录

然后在Path中进行配置。 PATH环境变量的值,设置为:%MAVEN_HOME%\bin

cmd打开命令提示符,输入**mvn -v,** 若出现如图情况则安装成功。

2.创建Maven项目

2.1全局设置

首先进行全局设置,进入IDEA欢迎界面

打开All Settings,选择 Build,Execution,Deployment => Build Tools => Maven

配置工程的编译版本为21(21是一个长期版本)

2.2 创建SpringBoot项目

上述准备工作完成之后,创建SpringBoot项目

创建成功后

2.3 常见问题

有时联网基于spring的脚手架创建SpringBoot项目,偶尔可能会因为网内网络的原因,链接不上SpringBoot的脚手架网站,此时会出现如下现象:

此时可以使用阿里云提供的脚手架,网址为:https://start.aliyun.com

三、单元测试

1.JUnit入门

以前我们对程序进行测试都是直接运行main函数来对方法的正确性进行测试,而如果我们使用了JUnit单元测试框架进行测试,我们就可以对每个方法进行分开测试,一个方法的失败不会影响其他方法。

我们在使用JUnit前,要先在pom.xml文件中引入相关的依赖。

XML 复制代码
<!--Junit单元测试依赖-->
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.9.1</version>
    <scope>test</scope>
</dependency>

在test/java目录下,创建测试类,并编写对应的测试方法,并在方法上声明@Test注解。

java 复制代码
    @Test
    public void add() {
        int a = 10;
        int b = 10;
        System.out.println(a + b);
    }

单元测试运行通过

注意:1.测试类的命名规范为:XxxxTest

2. 测试方法命名规范为:public void xxx(){...}

2.断言

JUnit提供了一些辅助方法,用来帮我们确定被测试的方法是否按照预期的效果正常工作,这种方式称为断言。

我们拿第一个方法来举例

java 复制代码
public class AddTest {

    @Test
    public void add() {
        int a = 10;
        int b = 10;
        // 第一个参数为预期值,第二个参数为真实值,第三个参数为报错信息
        Assertions.assertEquals(30, a + b, "两个值不相同");
    }
}

我们发现报错了,因为预期值和真实值不相同。将预期值改为20,测试就可通过。

相关推荐
小蒜学长3 分钟前
基于SpringBoot的佳新超市管理系统设计与实现系统(代码+数据库+LW)
java·数据库·spring boot·后端·佳新超市管理系统
IT_陈寒42 分钟前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
打工仔折腾 AI1 小时前
把AI Agent托管在家用电脑:UU远程终端与端口映射实测记录
人工智能·后端·python·langchain·ai agent 实战
vx_Biye_Design2 小时前
springboot高校选课系统82776-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·课程设计·express
打工仔折腾 AI4 小时前
LLaMA 1 到 LLaMA 3 架构演进拆解:从 RoPE、GQA 到词表扩张
人工智能·后端·python·深度学习·langchain·llama
可乐鸡翅yeah_4 小时前
HLS 分片过期清理,直播旧 TS 分片磁盘爆满问题处理
java·后端·spring·m3u8·m3u8在线·音视频在线播放
张彦峰ZYF4 小时前
加了锁不等于扛得住争用:synchronized、显式锁与 CAS 的语义分层、争用代价账本与选型判据
后端·同步设施·内置锁的四种状态与单向升级·可重入的由来与四条硬边界·显式锁的状态字段与等待队列·读写锁与邮戳锁·一次同步的开销账本
专业程序开发源4 小时前
SSM校园拍摄交流服务平台36936-计算机课程设计、毕业设计
java·spring boot·后端·python·elasticsearch·php·课程设计
Gopher_HBo4 小时前
zap采样器与性能优化内幕
后端