Maven配置,Idea集成Maven_依赖引入,Idea生成单元测试 - 详解
Maven官方网址:传送门
一、Maven下载以及配置
.在下载好解压之后需要找到其位置,小小的配置一下:
- 新建仓库文件夹,我这里将其命名为maven_repo
- 配置settings.xml

 进入conf目录下,找到settings.xml文件,用记事本打开,或者其他软件打开
找到mirror这个标签,进行如下配置,链接阿里云私服
<mirror>
  <id>alimaven</id>
    <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
          </mirror>本地仓库查找:Maven 首先会在本地仓库(~/.m2/repository)中查找依赖。
私服查找(如果配置):
如果本地没有,且项目中配置了私服(如 Nexus、Artifactory),Maven 会按照 settings.xml 或 pom.xml 中配置的私服地址去查找。
私服通常会代理中央仓库(或其他远程仓库),但私服的行为取决于其配置:
如果私服有缓存(之前有人下载过该依赖),则直接返回。
如果私服未缓存,且配置了中央仓库代理(如 repo.maven.apache.org),私服会从中央仓库下载并缓存到私服,再返回给本地。
中央仓库(默认行为):
如果没有配置私服,Maven 会直接去中央仓库下载(除非显式禁用了默认中央仓库配置)。
下来找到这个标签,在里面写本地仓库的绝对地址
 3. 配置系统环境变量
win11系统:右键桌面的此电脑,点击属性,找到高级系统设置
 点击环境变量,在系统环境变量下操作,单击新建
 根据自己的Maven路径做出如下设置:
 新建完成,点击Path这一变量,新建变量如下:
%MAVEN_HOME%\bin这样就配置的差不多了。测试一下
 win+r键,输入cmdmvn -v
mvn help:system这一步可能需要花费一点时间,因为Maven会自动下载缺省的或者更新的各种配置文件和依赖到我们设置的本地仓库中
出现
 即为配置成功。
二、Idea集成maven

 点击File,选择Close Project
点击Customize
选择All settings
 根据自己的Maven路径配置:
 从上到下分别为:
- Maven文件夹的路径
- Maven setting.xml配置文件的路径
- Maven本地仓库的路径![在这里插入图片描述]() 
 在Runner中选择自己的JDK![在这里插入图片描述]() 
这里同样
 之后打开应用保存,打开 Idea
 创建新项目:选择Maven构建项目
 点击create
 创建之后是这个样子,在资源管理中,src下的main目录下的Java目录存的是我们的核心代码,Test目录写的是我们测试的代码(后面会展示),写个Hello world来测试一下,能不能正常输出

 ok,没问题,而且右边资源管理出现了target目录
 target文件夹是用来存放项目构建后的文件和目录、jar包、war包、编译的class文件
下来我们来导入依赖;
 在右边的资源管理中,点击pom.xml
输入标签,我们可以在这个标签中引入依赖,下来我们进入依赖的网站mvnrepository(PS:人机过不去的可以尝试切换手机热点)
 打开是这样的,可以在上方的搜索框输入我们想要的依赖。

 这里例如:Spring-context
 选择版本,这里我选择的是6.1.4的版本,复制红色框的内容,之后回到Idea
 直接粘贴在这里标签里面
在本地仓库中没有的话就会显示红色,点击Maven的刷新,Maven就会从私服中下载到这个依赖存入到本地仓库
 例如:我的电脑中没有6.1.6这个版本,就会变为红色,此时点击刷新
 就会自动下载
 之后就会变为正常的颜色
三、Idea生成单元测试
测试代码如下:
package d1;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
public class UserService
{
/**
* 给定一个身份证号, 计算出该用户的年龄
* @param idCard 身份证号
*/
public Integer getAge(String idCard){
if (idCard == null || idCard.length() != 18) {
throw new IllegalArgumentException("无效的身份证号码");
}
String birthday = idCard.substring(6, 14);
LocalDate parse = LocalDate.parse(birthday, DateTimeFormatter.ofPattern("yyyyMMdd"));
return Period.between(parse, LocalDate.now()).getYears();
}
/**
* 给定一个身份证号, 计算出该用户的性别
* @param idCard 身份证号
*/
public String getGender(String idCard){
if (idCard == null || idCard.length() != 18) {
throw new IllegalArgumentException("无效的身份证号码");
}
return Integer.parseInt(idCard.substring(16,17)) % 2 == 1 ? "男" : "女";
}
}规范测试文件一般以:XXXTest的格式
 引入如下依赖;
<dependency>
  <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
      <version>
        5.9.1</version>
          </dependency>在测试文件中:
import d1.UserService;
import org.junit.jupiter.api.Test;
public class UserServiceTest
{
@Test
public void testGetAge() {
UserService userService = new UserService();
Integer age = userService.getAge("110101199001011234");
System.out.println(age);
}
}这里规定测试必须以public void开头,必须遵守,记得写@Test注解
 点击进行测试

Test passed 1 证明过了一个单元测试 此人今年35岁
 
                    
                     
                    
                 
                    
                

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号