当前位置: 首页 > news >正文

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基本使用
# 打开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:定义当前项目版本号
<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文件的解释
<!--当前顶目的坐标-->
<groupId>com.itheima</groupId>
<artifactId>maven-demo</artifactId>
<version>1.0-SNAPSHOT</version>
依赖添加方式
  • 搜索添加

    搜索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包的作用范围:编译环境、测试环境、运行环境

<----scope的默认值是compile
------>
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope>
</dependency>
依赖范围编译classpath测试classpath运行classpath例子
compileYYYlogback
test-Y-Junit
providedYY-servlet-api
runtime-YYjdbc驱动
systemYY-存储在本地的jar包
import引入DependencyManagement引入DependencyManagement引入DependencyManagement引入DependencyManagement

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

http://www.lryc.cn/news/279355.html

相关文章:

  • MySQL的导入导出及备份
  • 【机器学习】常见算法详解第2篇:K近邻算法各种距离度量(已分享,附代码)
  • @KafkaListener指定kafka集群
  • 什么是算法的空间复杂度?
  • WebDav协议相关软件@简单配置局域网内的http和WebDav服务器和传输系统
  • 自定义数据实现SA3D
  • 设计模式基础概念:探索设计模式的魅力
  • 【Leetcode】2182. 构造限制重复的字符串
  • Kubernetes(K8S)云服务器实操TKE
  • 设置弹窗随鼠标位置移动
  • Spring Boot实现数据加密脱敏:注解 + 反射 + AOP
  • jmeter和meterSphere如何使用第三方jar包
  • API对象上千个,有啥关联性,kubectl-tree一键搞定
  • java自定义工具类在List快速查找相同字段值对象
  • codeforces Hello 2024 - C - Grouping Increases --- 题解
  • STM32H5培训(一)总览
  • 亚马逊云科技 WAF 部署小指南(五):在客户端集成 Amazon WAF SDK 抵御 DDoS 攻击...
  • 高光谱分类论文解读分享之基于多模态融合Transformer的遥感图像分类方法
  • Trans论文复现:基于数据驱动的新能源充电站两阶段规划方法程序代码!
  • 将抖音视频转成MP3并下载
  • C程序训练:与输入有关的错误
  • 制作 CentOS Stream9 的U盘系统启动盘
  • Vulnhub靶机:driftingblues 1
  • CloudCompare——点云空间圆拟合
  • 解决POI报错POIXMLTypeLoader不存在的问题
  • 关于rewriteBatchedStatements的源码分析
  • 自动化神器 Playwright 的 Web 自动化测试解决方案
  • docker filebeat 将日志多级目录和多维json数据日志同步到es
  • 【机器学习】模型参数优化工具:Optuna使用分步指南(附XGB/LGBM调优代码)
  • webview全屏处理,即插即用