Maven 基础总结篇

Maven 基础总结篇

Maven是专门用于管理和构建Java项目的工具,它的主要功能有:

  • 提供了一套标准化的项目结构:用于解决不同IDE(例如eclipse与IDEA)不同的项目结构的问题

  • 提供了一套标准化的构建流程(编译,测试,打包,发布...) (软件生命周期)

  • 提供了一套依赖管理机制:管理项目所依赖的第三方资源,例如jar包和插件

    • 下载jar包 (项目对象)
    • 赋值jar包到项目
    • 将jar包加入到工作环境
仓库
  • 本地仓库:本地保存jar包的仓库,在下面的链接中,在settings.xml中使用了****来配置本地仓库,优先访问本地仓库,本地仓库没有,再去远程仓库拉取。
  • 远程仓库:Maven的官方仓库: https://repo1.maven.org/maven2/ 用于拉取jar包
    • 远程仓库(私人):由于远程仓库太远了,且有时需要用到自家公司不可公开的jar,所以一般公司需要建立自己的私人远程仓库,在settings.xml中使用了}****来配置远程私人仓库

Maven安装及配置

步骤:下载--->修改配置--->保存

详细步骤: MAVEN的安装与配置教程(超详细版)_maven安装及配置教程-CSDN博客

Maven基本使用
maven 复制代码
# 打开cmd 找到对应的路径
mvn compile   ## 编译
mvn clean     ## 清理
mvn test      ## 测试
mvn package   ## 打包
mvn install   ## 安装
Maven生命周期
  • Mven构建项目生命周期描述的是一次构建过程经历经历了姦少个事件
  • Maven对项目构建的生命周期划分为3套
    • clean:清理工作
    • default:核心工作,例如编译,测试,打包,安装等
    • site:产生报告,发布站点等
    • 注意:同一生命周期内,执行后边的命令,前边的所有命令会自动执行
IDEA中配置Maven
  • 选择IDEA中File ->Settings
  • 搜索maven (注意这里是小写)
  • 设置IDEA使用本地安装的Maven,并修改配置文件路径,在Maven home path 中选择对应的Maven,在User settings file 中选择对应的settings.xml文件
Maven坐标详解
  • 什么是坐标?
    • Maven中的坐标是资源的唯一标识
    • 使用坐标来定义项目或引入项目中需要的依赖
  • Maven坐标主要组成
    • groupld:定义当前Maven.项目隶属组织名称(通常是域名反写,例如:com.itheima)
    • artifactld:定义当前Maven.项目名称(通常是模块名称,例如order-service、goods-service)
    • version:定义当前项目版本号
xml 复制代码
<groupId>com.itheima</groupId>
<artifactId>maven-demo</artifactId>
<version>1.0-SNAPSHOT</version>

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>5.1.46</version>
</dependency>
IDEA 创建Maven项目
  • 创建模块,选择Maven,点击Next
  • 填写模块名称,坐标信息,点击finish,创建完成
  • 编写HelloWorld,并运行
IDEA导入Maven项目
  • 选择右侧Maven面板,点击+号
  • 选中对应项目的pom.xml文件,双击即可
  • 如果没有Maveni面板,选择ViewAppearanceTool Window Bars

推荐插件:maven-helper,方便操作maven的编译等操作

依赖管理
  • 在pom.xml中编写dependencies:标签
  • 在标签中使用引入坐标
  • 定义坐标的groupld,artifactld,version
  • 点击刷新按钮,使坐标生效
pom.xml文件的解释
xml 复制代码
<!--当前顶目的坐标-->
<groupId>com.itheima</groupId>
<artifactId>maven-demo</artifactId>
<version>1.0-SNAPSHOT</version>
依赖添加方式
  • 搜索添加

    xml 复制代码
    搜索mysql maven
    选择mysql版本
    选择Maven复制粘贴
    选择刷新,将jar包拉进来
  • 直接添加,直接在groupId中输入需要添加的依赖名称,例如mysql

  • 按下快捷键Alt+insert,弹出Generate框,选择Dependency,搜索所需jar的关键字,点击add.添加jar包成功。

  • 使用坐标导入jar包-自动导入,选择IDEA中File->Settings,在弹出的面板中找到Build Tools,选择Any changes,点击ok即可生效

依赖范围

通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围:编译环境、测试环境、运行环境

xml 复制代码
<----
      scope的默认值是compile
------>
<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.13</version>
	<scope>test</scope>
</dependency>
依赖范围 编译classpath 测试classpath 运行classpath 例子
compile Y Y Y logback
test - Y - Junit
provided Y Y - servlet-api
runtime - Y Y jdbc驱动
system Y Y - 存储在本地的jar包
import 引入DependencyManagement 引入DependencyManagement 引入DependencyManagement 引入DependencyManagement

觉得有帮助的朋友,请帮我点赞或收藏,谢谢~

相关推荐
better_liang1 天前
每日Java面试场景题知识点之-消息队列MQ核心场景与实战
java·面试·kafka·消息队列·rabbitmq·rocketmq·mq
小江的记录本1 天前
【JVM虚拟机】垃圾回收GC:四种引用类型:强引用、软引用、弱引用、虚引用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
小马爱打代码1 天前
Spring源码 第四篇:Spring 5 源码深度拆解:AOP 全流程核心原理
java·后端·spring
better_liang1 天前
每日Java面试场景题知识点之-SpringBoot启动流程
java·面试·springboot·源码解析·启动流程
RyFit1 天前
Java + AI 实战:Spring AI 从入门到企业级落地
java·人工智能·spring
ZhengEnCi1 天前
01-如何监听接口调用情况?
java·spring boot·后端
JAVA面经实录9171 天前
MyBatis学习体系
java·mybatis
java1234_小锋1 天前
在 Spring AI 中如何实现函数调用(Function Calling)?请说明其基本原理和应用场景。
java·人工智能·spring
小马爱打代码1 天前
Spring源码 第九篇:Spring 5 源码深度拆解 - Spring 事件驱动模型
java·后端·spring
ForgeAI码匠1 天前
ForgeAdmin|Spring Boot 3 后台框架的自动配置设计:少写配置,多做组合
java·spring boot·后端