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

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

相关推荐
你不是我我5 小时前
【Java 开发日记】HTTP3 性能更好,为什么内网微服务依然多用 HTTP2?HTTP2 内网优势是什么?
java·开发语言·微服务
雪碧聊技术6 小时前
大模型爆火!Java后端如何抓住Agent全栈开发的风口
java·大模型·agent·全栈开发
逻辑驱动的ken7 小时前
Java高频面试场景题25
java·开发语言·深度学习·面试·职场和发展
AI人工智能+电脑小能手8 小时前
【大白话说Java面试题】【Java基础篇】第32题:Java的异常处理机制是什么
java·开发语言·后端·面试
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ9 小时前
通过java后端代码来实现给word内容补充格式文本内容控件,以及 设置控件的标记和标题
java·c#·word
無限進步D10 小时前
Java 面向对象高级 接口
java·开发语言
逸Y 仙X11 小时前
文章二十七:ElasticSearch ES查询模板(Search Template)高效复用实战
java·大数据·数据库·elasticsearch·搜索引擎·全文检索
二哈赛车手11 小时前
新人笔记---Spring AI的Advisor以及其底层机制讲解(涉及源码),包含一些遇见的Spring AI的Advisor缺陷问题的解决方案
java·人工智能·spring boot·笔记·spring
AC赳赳老秦11 小时前
接口测试自动化:用 OpenClaw 对接 Postman,实现批量回归测试、测试报告自动生成与推送
java·人工智能·python·算法·elasticsearch·deepseek·openclaw