一,什么是Maven

Maven 是一款基于 Java 平台的项目构建和依赖管理工具,简单来说,它解决了 Java 开发中的两个核心痛点:

  1. 手动管理 Jar 包(依赖)麻烦:比如需要自己下载 Jar 包、解决 Jar 包之间的版本冲突、手动将 Jar 包加入项目类路径。
  2. 项目构建流程不统一:比如编译、测试、打包、部署等步骤,不同开发者可能有不同的操作方式,容易出问题。

二、maven的核心概念

my-project
├── src
│   ├── main
│   │   ├── java      # 主代码
│   │   └── resources # 配置文件
│   └── test
│       ├── java      # 测试代码
│       └── resources # 测试配置
├── target            # 构建输出
└── pom.xml           # 项目配置

三.创建一个项目里面都有这些

1.idea :

这是 IDEA 开发工具的配置文件夹,存储了项目的 IDE 配置信息,比如代码风格、运行配置、插件设置等。

它是 IDEA 自动生成的,不需要手动修改,也不需要提交到代码仓库。

2.mvn:

这个文件夹包含了 Maven 包装器(Maven Wrapper)的相关文件,它的作用是让项目在没有全局安装 Maven 的环境下也能运行。

确保所有开发者使用的是项目指定的 Maven 版本,避免因版本不一致导致的问题。

3. src

这是项目的源代码和资源文件的根目录,Maven 项目的核心内容都在这里面。

src/main

存放项目的主程序代码和资源,也就是最终会打包到生产环境里的内容。

  • java:存放 Java 源代码,比如你的 com.yunku.Main 主类就在这里。
  • resources:存放主程序的配置文件、静态资源等,比如 application.propertiesmybatis-config.xml

src/test

存放项目的测试代码和资源,只在开发阶段用于单元测试、集成测试等。

  • java:存放测试代码,比如 MainTest.java
  • resources:存放测试用的配置文件,比如 application-test.properties

4.pom.xml

这是 Maven 项目的核心配置文件,是整个项目的 “灵魂”。

  • 定义项目的基本信息(GAV 坐标)。
  • 声明项目依赖(比如你需要引入的 Spring、JUnit 等 Jar 包)。
  • 配置构建规则(比如打包方式、插件等)。

1,基本坐标构成有

Maven 的基本坐标由 groupIdartifactIdversion 三个部分组成,合称为 GAV,所有 Maven 项目和依赖都必须具备这三个坐标,缺一不可,它的核心作用是在全球范围内唯一标识一个项目(或一个 Jar 包依赖),避免命名冲突。


    4.0.0
    
    com.example//比如公司部门
    maven-demo//项目
    1.0.0-SNAPSHOT//版本号

2,声明依赖

使用maven首先需要配置阿里云镜像网站,和设置本地仓库位置


    aliyunmaven
    *
    阿里云仓库
    https://maven.aliyun.com/repository/public

//配置本地仓库
D:\DevTools\maven-repository
//需要找到指定位置


    
    
        
        junit
        junit
        4.13.2
        
        test
    
    
    
        org.springframework
        spring-core
        5.3.20
        
    

3,配置构建规则(打包方式、插件等



    
    Maven-Demo-1.0
    
    
        
        
            
            org.apache.maven.plugins
            maven-compiler-plugin
            3.8.1
            
            
                8 
                8 
                UTF-8 
            
        
    

四,text.java

1,作用是什么

        测试类,测试代码

2,可以使用依赖,进行代码的操作


    
        junit
        junit
        4.13.2
        test
    

可以不用main函数可以直接运行方法

五,maven的生命周期

1,maven生命周期的依赖

2,依赖的作用

  • clean

    • 清理项目构建产物,删除target目录(编译、打包生成的文件均存储于此),为新的构建流程重置环境。
  • validate

    • 验证项目配置的合法性(如pom.xml格式、依赖完整性),确保后续构建流程可正常执行。
  • compile

    • 编译项目主代码(src/main/java目录下的 Java 文件),将其转换为字节码文件,输出到target/classes目录。
  • test

    • 编译并执行测试代码(src/test/java目录下的测试类),需依赖 JUnit 等测试框架,验证主代码功能的正确性。
  • package

    • 将编译后的代码打包为指定格式的产物(默认 Java 项目生成jar包,Web 项目生成war包),产物存储于target目录。
  • verify

    • 对打包产物进行验证(如检查测试报告、代码质量等),确保产物符合项目规范。
  • install

    • 将打包产物安装到本地 Maven 仓库,供本地其他 Maven 项目通过 GAV 坐标依赖引用。
  • site

    • 生成项目文档站点(包含项目信息、测试报告、依赖说明等),便于项目的文档管理。
  • deploy

    • 将打包产物部署到远程仓库(私服),供团队其他成员或其他项目共享使用。

3,依赖分为三种