Maven 基础总结篇

news2025/1/18 3:17:32

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.coloradmin.cn/o/1370620.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构与算法教程,数据结构C语言版教程!(第三部分、栈(Stack)和队列(Queue)详解)二

第三部分、栈(Stack)和队列(Queue)详解 栈和队列&#xff0c;严格意义上来说&#xff0c;也属于线性表&#xff0c;因为它们也都用于存储逻辑关系为 "一对一" 的数据&#xff0c;但由于它们比较特殊&#xff0c;因此将其单独作为一章&#xff0c;做重点讲解。 使用栈…

高效构建Java应用:Maven入门和进阶(三)

高效构建Java应用&#xff1a;Maven入门和进阶&#xff08;三&#xff09; 三. Maven的核心功能和构建管理3.1 依赖管理和配置3.2 依赖传递和冲突3.3 依赖导入失败场景和解决方案3.4 扩展构建管理和插件配置 三. Maven的核心功能和构建管理 3.1 依赖管理和配置 Maven 依赖管理…

Python基础知识:整理7 字典的定义及其相关操作

1 字典的定义 # 1. 字典的定义 # 定义字典的字面量 # {key: value, key: value, ......, key: value}# 定义字典变量 # my_dict {key: value, key: value, ......, key: value}# 定义空字典 # my_dict {} # my_dict dict()定义重复Key的字典 my_dict1 {"张三": …

随机输一次

大家应该都会玩“锤子剪刀布”的游戏&#xff1a;两人同时给出手势&#xff0c;胜负规则如图所示&#xff1a; 现要求你编写一个控制赢面的程序&#xff0c;根据对方的出招&#xff0c;给出对应的赢招。但是&#xff01;为了不让对方意识到你在控制结果&#xff0c;你需要隔 K …

电脑文件mfc100u.dll丢失的解决方法分析,怎么修复mfc100u.dll靠谱

mfc100u.dll丢失了要怎么办&#xff1f;其实很多人都遇到过这样的电脑故障吧&#xff0c;说这个mfc100u.dll文件已经不见了&#xff0c;然后一些程序打不开了&#xff0c;那么这种情况我们要怎么解决呢&#xff1f;今天我们就来给大家详细的说说mfc100u.dll丢失的解决方法。 一…

Redis入门-redis的五大数据类型+三种特殊的数据类型

前言&#xff1a;Redis有五大基本类型与三种特殊类型的介绍 Redis有五大基本类型&#xff1a;字符串&#xff08;string&#xff09;、哈希&#xff08;hash&#xff09;、列表&#xff08;list&#xff09;、集合&#xff08;set&#xff09;和有序集合&#xff08;sorted se…

ATTCK视角下的信息收集:Sysmon检测

目录 1、简介 2、使用Sysmon 3、检测Sysmon是否安装运行 4、检测Sysmon是否被卸载 5、使Sysmon在终端隐匿运行的技术 1、简介 Sysmon&#xff08;系统监视器&#xff09;是由windows sysinternals 出品的Sysinternals 系列工具中的一个 它是windows系统服务和设备驱动程…

VMware通过微PE安装window XP系统

软/硬件版本&#xff1a;微PE V1.3、VMware Workstation 12 Pro、windows xp professional sp3 目录&#xff1a;①不成功的3点原因&#xff1b;②安装教程 安装不成功的原因有3点&#xff1a; 1、VMware磁盘格式选择IDE&#xff0c;否则系统安装界面将出现0x0000007B错误代码。…

【机器学习】常见算法详解第2篇:K近邻算法各种距离度量(已分享,附代码)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习&#xff0c;伴随浅显易懂的数学知识&#xff0c;让大家掌握机器学习常见算法原理&#xff0c;应用Scikit-learn实现机器学习算法的应用&#xff0…

k8s源码阅读环境配置

源码阅读环境配置 k8s代码的阅读可以让我们更加深刻的理解k8s各组件的工作原理&#xff0c;同时提升我们Go编程能力。 IDE使用Goland&#xff0c;代码阅读环境需要进行如下配置&#xff1a; 从github上下载代码&#xff1a;https://github.com/kubernetes/kubernetes在GOPATH目…

YOLOv3算法较YOLOv1及YOLOv2的区别

yoloV3以V1&#xff0c;V2为基础进行的改进&#xff0c;主要有&#xff1a;利用多尺度特征进行目标检测&#xff1b;先验框更丰富&#xff1b;调整了网络结构&#xff1b;对象分类使用logistic代替了softmax,更适用于多标签分类任务。 3.1算法简介 YOLOv3是YOLO (You Only Lo…

Python基础语法(上)——基本语法、顺序语句、判断语句、循环语句(有C++基础快速掌握Python语言)

文章目录 0.python小技巧与易错点1.python 与 c 语法有哪些区别2.Python基本语法2.1python的变量类型2.2python中的运算符2.3python中的表达式2.4python中的输入输出 3.python判断语句3.1基本用法&#xff1a;3.2关于else if 的用法3.3关于pass语句3.4python变量的作用域3.5pyt…

2024年1月9日

2024年1月9日09:26:57待在工作室玩千恋万花和登录PTA练习习题 2024年1月9日09:28:02判断素数肯定会成为考试的关键点之一 2024年1月9日15:13:49完成java的复习 2024年1月9日15:16:41判断反馈类型 2024年1月9日15:20:29行列式求系数通过沙路法展开得到 2024年1月9日15:21:1…

【leetcode】力扣算法之删除链表中倒数第n个节点【中等难度】

删除链表中倒数第n个节点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 用例 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 输入&#xff1a;head [1], n 1 输出&#xff1a;[] 输入&#xff1a;head …

【OSG案例详细分析与讲解】之二:【着色文件转换为字符数组】

文章目录 一、【着色文件转换为字符数组】前言 二、【着色文件转换为字符数组】Shader转换 三、【着色文件转换为字符数组】转换函数 1.转换函数 2.字符替换函数 四、【着色文件转换为字符数组】示例 1.GLSL2Cpp.cpp文件&#xff1a; 2.Qt pro文件&#xff1a; 五、【着色文件转…

知识点整理[(GraphGeo) DATA AND PROBLEM DEFINITION]

3 DATA AND PROBLEM DEFINITION 3.1 Data Collection 问题一:IP定位数据集构成 回答: 包含数以百万计的IP地址,这些IP地址包括: (1)它们具有自己的知识(如自主系统(AS)和WHOIS数据); (2)网络测量

Python-抖音无法拒绝的表白代码【附源码】

一个无法被拒绝的表白代码 运行效果&#xff1a; 一&#xff1a;主程序&#xff1a; import sys import cfg import random import pygame from tkinter import Tk, messagebox Function:按钮类 Initial Args:--x, y: 按钮左上角坐标--width, height: 按钮宽高--text: 按钮显…

Vant2组件库van-list+Toast下拉加载滚动条回顶问题

目录 List 列表 Toast 轻提示 解决方案 1、不使用 Toast 的 加载提示 2、修改调整 pointer-event 属性值 3、判断是否为第一次加载再使用 背景 &#xff1a; 移动端项目 开发时&#xff0c;有数据长列表展示的场景需求&#xff0c;此时就用到了 Vant2 组件库里面的 <v…

【信息安全】深度分析邮件安全及钓鱼攻击防范

本博文共计3100余字&#xff0c;预计需阅读20分钟 【邮件安全建设】 一、前言 邮件系统作为企业办公网络架构中重要的组成部分&#xff0c;同时也是业务高频使用的办公应用&#xff0c;一旦出现安全问题&#xff0c;业务将会被严重干扰甚至中断&#xff0c;本篇博客通过攻守两…

react中实现拓扑图

react中实现拓扑图关系图 需求echarts代码react代码 需求 项目中的原型图需要使用react实现一个拓扑图&#xff08;关系图&#xff09; 通过查找&#xff0c;找到了可以使用的类似的原型&#xff1a;以下图片地址。 通过项目需要以及修改&#xff0c;形成了下边的样式 echar…