管理和构建java项目

  • 依赖管理
  • 项目构建
  • 统一项目结构

Maven坐标

  • 资源(jar)的唯一标识,通过该坐标可以唯一确定定位资源位置
  • 使用坐标来定义项目或引入项目中需要的依赖
  • snapshot:开发版本 release:完整版本

导入maven项目

  • 将maven项目复制到项目目录下
  • 选择maven项目的pom.xml文件进行导入

配置依赖

<?xml version="1.0" encoding="UTF-8"?>
<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.itheima</groupId>
    <artifactId>maven-project01</artifactId>
    <version>1.0-SNAPSHOT</version>
 
    <properties>
        <maven.compiler.source>24</maven.compiler.source>
        <maven.compiler.target>24</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
<!--配置依赖-->
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>6.1.4</version>
            <exclusions>
                <exclusion>
                    <groupId>io.micrometer</groupId>
                    <artifactId>micrometer-observation</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
<!--排除依赖-->
 
</project>

maven的生命周期

  • clean:清理操作
  • default:核心工作,便衣测试打包等
  • site:生成报告等

单元测试

JUnit:最流行的java测试框架之一

  • 断言
package com.itheima;
 
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
 
public class UserServiceTest {
 
    @Test
    public void testGetAge(){
        UserService userService = new UserService();
        Integer age = userService.getAge("130429200208280330");//com+option+v
        System.out.println(age);
    }
    @Test
    public void testGetGender(){
        UserService userService = new UserService();
        String gender = userService.getGender("130429200208280330");
        System.out.println(gender);
    }
 
    //断言
    @Test
    public void testGenderWithAssert(){
        UserService userService = new UserService();
        String gender = userService.getGender("130429200208280330");
        Assertions.assertEquals("男",gender, "性别获取有问题");
    }
 
    @Test
    public void testGenderWithAssert2(){
        UserService userService = new UserService();
        //无效参数异常
//        Assertions.assertThrows(IllegalArgumentException.class, () -> {
//            userService.getGender(null);
//        });
        //空指针异常
        Assertions.assertThrows(NullPointerException.class, () -> {
            userService.getGender(null);
        });
    }
}
 
  • 常见注解

@DisplayName("测试用户性别")
    @ParameterizedTest
    @ValueSource(strings = {"130429200208280330","130429200208280390","130429200208280350"})
    public void testGenderWithAssert3(String IdCard){
        UserService userService = new UserService();
        String gender = userService.getGender(IdCard);
        Assertions.assertEquals("男",gender);
    }
  • 依赖范围