【web开发02】后端开发Maven

后端开发Maven

  • [1 Maven是什么?](#1 Maven是什么?)
    • [1.1 Maven基础概念](#1.1 Maven基础概念)
    • [1.1.2 仓库](#1.1.2 仓库)
    • [1.1.3 坐标](#1.1.3 坐标)
  • [2 配置maven环境](#2 配置maven环境)
  • [3 创建maven项目](#3 创建maven项目)
  • [4 导入maven项目](#4 导入maven项目)
  • [4 依赖管理](#4 依赖管理)
    • [4.1 依赖配置](#4.1 依赖配置)
    • [4.2 依赖传递](#4.2 依赖传递)
      • [4.2.1 排除依赖](#4.2.1 排除依赖)
    • [4.3 依赖范围](#4.3 依赖范围)
    • [4.4 生命周期](#4.4 生命周期)
      • [4.4.1 运行生命周期](#4.4.1 运行生命周期)

1 Maven是什么?

Maven本质是项目管理的工具,是用java写出来的,以面向对象的形式设计,它把一个项目看成一个对象,这个对象叫作POM(project object model)

1.依赖管理:不用再手动导入jar包了

2.统一开发结构:提供标准、统一的项目结构

3.项目构建:标准跨平台的自动化项目构建方式

1.1 Maven基础概念

1.1.2 仓库

用于存储资源,包含各种jar包

1.1.3 坐标

用于描述仓库中资源的位置

Maven坐标主要组成

1.groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis)

2.artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)

3.version:定义当前项目版本号

https://mvnrepository.com/

Maven坐标的作用

使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成

2 配置maven环境







3 创建maven项目





4 导入maven项目


4 依赖管理

4.1 依赖配置

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

xml 复制代码
<dependencies>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
</dependencies>

4.2 依赖传递

按住ctrl 点击maven-projectB

在A项目中依赖了logback和maven-projectB,没有直接依赖C

4.2.1 排除依赖

xml 复制代码
<!-- 排除依赖-->
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>

4.3 依赖范围


4.4 生命周期

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

生命周期阶段:

clean:移除上一次构建生成的文件

compile:编译项目源代码

test:使用合适的单元测试框架运行测试(junit)

package:将编译后的文件打包,如:jar、war等

install:安装项目到本地仓库

4.4.1 运行生命周期

相关推荐
fīɡЙtīиɡ ℡7 分钟前
布隆过滤器
java
yaoxin52112328 分钟前
462. Java 反射 - 获取声明类与封闭类
java·开发语言·python
wuqingshun3141593 小时前
MYSQL的乐观锁和悲观锁是什么?
java
唐青枫3 小时前
Java SLF4J 实战指南:从日志门面到 Logback、MDC 和链路追踪
java
jvmind_dev4 小时前
Java GC 实战指南(番外篇):被忽视的隐形杀手 —— Class Unloading 如何拖垮 GC
java·后端
An_s4 小时前
机器学习python之识别图中物品信息
java·linux·开发语言
AIGS0014 小时前
跨越语义鸿沟:企业本体语义平台的构建与落地
java·人工智能·python·机器学习·人工智能ai大模型应用
蓝田~5 小时前
大模型本地部署与远程调用 — 从 API 到 Agent
java·人工智能·claude·claude code
码农进化录5 小时前
Java 程序员的 AI 进化论 | Spring Boot 接入 OpenAI 的六个坑,全帮你踩了
java·spring boot·openai
疯狂成瘾者6 小时前
Java 常见集合方法
java·windows·python