Maven基础知识

Maven基础知识

一、Maven的作用

  • 更方便的导入jar包,避免版本冲突问题

  • 标准项目结构:

  • 标准化的项目构建流程

二、Maven的安装和集成

  • 安装步骤:

    1. 下载并解压 apache-maven-3.9.11-bin.zip

    2. 配置本地仓库:修改 conf/settings.xml 中的 为一个指定目录。

      xml 复制代码
      <localRepository>D:\JAVA\develop\apache-maven-3.9.11\mvn_repo</localRepository> 
      <!-- 此处设置为自己的目录用于下载jar包 -->
    3. 配置阿里云私服:修改 conf/settings.xml 中的标签,为其添加如下子标签:

      xml 复制代码
      <mirror>
      	<id>alimaven</id>
      	<name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>centralrOf>
      </mirror>
    4. 配置环境变量:MAVEN_HOME为maven的解压目录,并将其bin目录加入PATH环境变量

      • 在命令行中执行mvn -v测试Maven是否安装成功
  • VScode创建maven项目

    参考文章:(43 封私信) 配置 Maven 并创建项目-VScode - 知乎

三、依赖管理

3.1 依赖配置

  • 依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖

  • 配置:

    1. 在pom.xml中编写标签
    2. 在标签中使用引入坐标
    3. 定义坐标的 groupId, artifactId, version
    4. 点击刷新,引入最新加入的坐标
xml 复制代码
<dependencies>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
</dependencies>
  • 如果不知道依赖的坐标信息,可以到maven网站搜索

3.2 依赖传递

  • 依赖具有传递性
    • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
    • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
  • VScode需要对依赖传递的项目,从最底层依赖,进入到对应文件根目录,依次向上执行

    cmd 复制代码
    mvn clean install

    最后能在maven控制面板中看到依赖传递

  • 排除依赖:主动断开依赖的资源,被排出的资源无需指定版本

    xml 复制代码
        <dependencies>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.2.3</version>
            </dependency>
    
            <dependency>
                <groupId>com.itheima</groupId>
                <artifactId>maven-projectB</artifactId>
                <version>1.0-SNAPSHOT</version>
                <!-- 排除依赖-->
                <exclusions>
                    <exclusion>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>

3.3 依赖范围

  • 依赖的jar包,默认情况下可以再任何地方使用,可以使用...设置其作用范围

3.4 生命周期

  • Maven生命周期就是为了对所有的maven项目构建过程进行抽象和统一

  • Maven中有三套相互独立的生命周期

    • clean:清理工作
    • default:核心工作,如编译,测试,打包,安装,部署等
    • site:生成报告、发布站点等
  • 五个重要的生命周期阶段:

    • clean:移除上一次构建生成的文件
    • compile:编译项目源代码
    • test:使用合适的单元测试框架运行测试(junit)
    • package:将编译后的文件打包,如:jar、war
    • install:安装项目到本地仓库
  • 在Maven面板中 lifecycle中双击需要执行的阶段即可。

java 复制代码
// 测试生命周期中的test操作
package com.zcn;

import org.junit.Test;

public class DemoTest {
    @Test
    public void test1() {
        System.out.println("hello test1");
    }

    @Test
    public void test2() {
        System.out.println("hello test2");
    }

    @Test
    public void test3() {
        System.out.println("hello test3");
    }
}
相关推荐
bjzhang757 小时前
IDEA 2025.3重磅发布,Ultimate 终极版和 Community社区版二合一,免费版可商用
java·idea
程序猿零零漆8 小时前
Spring之旅 - 记录学习 Spring 框架的过程和经验(三)Bean的依赖注入配置、Spring的其它配置标签
java·学习·spring
TT哇8 小时前
@AllArgsConstructor
java·开发语言
lkbhua莱克瓦248 小时前
TCP通信练习1——多发多收
java·开发语言·网络·网络协议·tcp/ip·tcp练习
这就是佬们吗8 小时前
一文讲清---ELK搭建
java·笔记·elk·docker·容器
Filotimo_8 小时前
在java后端开发中,docker虚拟化容器用处
java·开发语言·docker
大学生资源网8 小时前
基于springboot的智能家居系统的设计与实现(源码+文档)
java·spring boot·后端·毕业设计·源码
葵花楹8 小时前
Maven 核心能力拆解 + 实战: Java 邮件群发
java·maven
洛阳纸贵8 小时前
JAVA高级工程师--Maven父子关系专题
java·前端·maven
爱干饭的boy8 小时前
MacBook安装node.js/maven/mysql
mysql·node.js·maven