Maven基础

目录

Maven坐标

坐标简介 

主要组成

Maven依赖管理 

配置依赖 

依赖简介

配置依赖

依赖传递

依赖传递简介 

排除依赖

 依赖范围

生命周期

生命周期简介 

 执行指定生命周期


Maven坐标

坐标简介 

Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置。

可以使用坐标来定义项目或引入项目中需要的依赖。

主要组成

groupld 定义当前Maven项目隶属组织名称 

artifactld 定义当前Maven项目名称(通常是模块名称 例如order-service,goods-service)

version 定义当前项目版本号 

Maven依赖管理 

配置依赖 

依赖简介

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

配置依赖

  1.  在pom.xml中编写<dependencies>标签
  2. 在<dependencies>标签中使用<dependency>引入坐标
  3. 定义坐标的groupld,artifactld,version
  4. 点击刷新按钮,引入新添加的坐标
<dependencies>
        <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
</dependencies>

如果引入的依赖在本地仓库不存在,将会连接远程/中央仓库,然后下载依赖。

如果不知道依赖的坐标信息,可以在中Maven仓库官网中搜索

依赖传递

依赖传递简介 

依赖具有传递性

直接依赖 在当前项目中通过依赖配置建立的依赖关系

间接依赖 被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

排除依赖

由于依赖传递的特性,如果我们需要b项目,但不需要b项目依赖的某个项目,可以通过如下方式排除该依赖

以排除projectA由于依赖projectB,而依赖的junit为例

 插入exclusions标签,并在groupId,artifactId中填写要排除的依赖,不需要指定版本

<dependency>
            <groupId>com.itheima</groupId>
            <artifactId>maven-projectB</artifactId>
            <version>1.0-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
</dependency>

重新加载,发现projectA不再依赖于junit

 依赖范围

依赖的jar包,默认情况下可以在任何地方使用。

可以通过<scope>标签设置其作用范围

作用范围

主程序范围有效(main文件夹范围内)

测试程序范围有效(test文件夹范围内)

是否参与打包运行(package指令范围内)

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
</dependency>
scope值主程序测试程序打包(运行)范例
comile(默认)    √     √      √log4j
test    ×     √      ×junit
provided     √     √      ×servlet-api
runtime     ×     √      √ jdbc驱动

生命周期

生命周期简介 

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

每套生命周期包含一些阶段,阶段是有顺序的,后面的阶段依赖于前面的阶段

有三套生命周期 clean  default  site

在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行(运行install,clean不会运行因为他们不属于同一套生命周期)

主要关注如下五个阶段 

clean 移除上一次构建生成的元素

compile 编译项目源代码

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

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

install 安装项目到本地

 执行指定生命周期

  1. 在idea右侧的maven工具栏选中对应的生命周期双击
  2. 在命令行中通过命令执行 如mvn compile

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/235573.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NSSCTF web刷题记录7

文章目录 [SDCTF 2022]CURL Up and Read[NUSTCTF 2022 新生赛]Translate [SDCTF 2022]CURL Up and Read 考点&#xff1a;SSRF 打开题目发现是curl命令&#xff0c;提示填入url 尝试http://www.baidu.com&#xff0c;成功跳转 将url的字符串拿去解码&#xff0c;得到json格式数…

LVGL | Demo实例使用说明

LVGL | Demo实例使用说明 时间&#xff1a;2023年12月10日21:51:17 文章目录 LVGL | Demo实例使用说明Demos for LVGLAdd the examples to your projectsDemosWidgetsMusic playerKeypad and encoderBenchmarkStress Contributing Demos for LVGL Add the examples to your p…

做题总结 59. 螺旋矩阵 II

跟着代码随想录顺序到这题&#xff0c;不会做。不知道怎么才能实现。 PS&#xff1a;我是用 java实现的。 题目&#xff1a;给你一个正整数 n &#xff0c;生成一个包含 1 到 n^2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 总结思路为&am…

Android音量调节参考一

基于android 9平台分析。 在Android系统中&#xff0c;默认的设备(phone等)音量都是分开控制的&#xff0c;这些包括媒体、铃声、闹铃、蓝牙、通话通过音频流来区别不同的音量类型。每种流类型都定义最大音量、最小音量及默认音量&#xff0c;Android 9定了了11中音频流类型&am…

Shell 常用命令详解-上

Shell 常用命令详解-上 1.目录查阅相关命令2.文件操作相关命令 1.目录查阅相关命令 ll 命令 命令描述&#xff1a;ll命令用于显示指定工作目录下的内容。 命令格式&#xff1a;ll [参数] [目录名]。 参数说明&#xff1a; 参数说明-a显示所有文件及目录&#xff08;包括隐藏文…

Modelscope Agent初体验与思考

背景&#xff1a;LLM → \to → Agent ChatGPT为代表的大语言模型就不用过多的介绍了&#xff0c;ChatGPT很强大&#xff0c;但是也有做不到的东西。 例如&#xff1a; 实时查询问题&#xff1a;实时的天气&#xff0c;地理位置&#xff0c;最新新闻报道&#xff0c;现实世…

基于ssm保险业务管理系统设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本保险业务管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

手动搭建koa+ts项目框架(基础)

文章目录 前言一、TS配置文件1、全局安装TypeScript2、项目根目录创建Typescript配置文件 二、项目初始化配置文件&#xff08;package.json&#xff09;1、初始化配置文件2、安装依赖 三、开启简单的服务API入口文件新增脚本 总结如有启发&#xff0c;可点赞收藏哟~ 前言 为什…

外贸开发信主题行写法?邮件的主题怎么写?

如何写高点击率的外贸开发信主题行&#xff1f;推荐的电子邮件主题行有哪些&#xff1f; 外贸开发信如何设计一个引人注目的主题行&#xff0c;成为了外贸从业者需要深入思考的问题。在本文中&#xff0c;蜂邮将探讨外贸开发信主题行的写作方法&#xff0c;以确保您的邮件能够…

Stable Diffusion这样的文本-图像生成模型有记忆吗?

Stable Diffusion扩散模型作为生成高质量图像的先进模型&#xff0c;却伴随着对训练数据的记忆化倾向&#xff0c;引发了隐私和安全性的担忧。AIGCer分享一篇分析该现象的文章&#xff0c;通过两个案例研究深入挖掘了文本复制现象&#xff0c;旨在为未来生成模型的改进提供重要…

调试备忘录-NTC电阻的使用(教程 + 代码)

软件环境&#xff1a;CodeWarrior 11.1 硬件环境&#xff1a;NXP S9KEAZ64A 传感器参数&#xff1a;NTC热敏电阻(R25 50k,B25-50 3950) 写在前面 最近做小项目需要用到NTC电阻&#xff0c;因此写一个调试备忘录记录下。 什么是NTC电阻&#xff1f; NTC热敏电阻就是负温度…

【CiteSpace】引文可视化分析软件CiteSpace下载与安装

CiteSpace 译“引文空间”&#xff0c;是一款着眼于分析科学分析中蕴含的潜在知识&#xff0c;是在科学计量学、数据可视化背景下逐渐发展起来的引文可视化分析软件。由于是通过可视化的手段来呈现科学知识的结构、规律和分布情况&#xff0c;因此也将通过此类方法分析得到的可…

JMS(Java Message Service)使用指南

介绍 JMS即Java消息服务&#xff08;Java Message Service&#xff09;应用程序接口&#xff0c;是一个Java平台中关于面向消息中间件&#xff08;MOM&#xff09;的API&#xff0c;用于在两个应用程序之间&#xff0c;或分布式系统中发送消息&#xff0c;进行异步通信。它是一…

1631. 最小体力消耗路径

一、题目 1、题目描述 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights &#xff0c;其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) &#xff0c;且你希望去最右下角的格子 (rows-1, columns-1) &#xff08;注意…

分布式事务Seata(别名Seta)(持续学习中)

1.为什么学习他? 当一台机器的时候,只需要本地事务回滚就好了,还有MonogoDB最好不要放敏感数据,特别是旧的版本,没有事务功能(ACID), 分布式事务,也是属于多线程问题,就是把多台机器变成一台机器(他拥有更多线程,但是也要考虑网络问题),redis在一台机器是单线程的,但是多台机器…

Playground v2:a new leap in creativity

https://huggingface.co/playgroundai/playground-v2-1024px-aesthetichttps://huggingface.co/playgroundai/playground-v2-1024px-aestheticPlayground v2&#xff1a;超越SDXL的模型来了 - 知乎Playground团队刚刚发布了新的文生图模型Playground v2&#xff0c;它是基于SDX…

基于MyBatis二级缓存深入装饰器模式

视频地址 学习文档 文章目录 一、示意代码二、装饰器三、经典案例—MyBatis二级缓存1、Cache 标准定义2、PerpetualCache 基础实现3、增强实现3-1、ScheduledCache3-2、LruCache 先来说说我对装饰器理解&#xff1a;当你有一个基础功能的代码&#xff0c;但你想在不改变原来代…

案例027:基于微信小程序的校园二手平台的设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

【Docker】进阶之路:(二)Docker简介

【Docker】进阶之路&#xff1a;&#xff08;二&#xff09;Docker简介 什么是 DockerDocker 由来与发展历程Docker的架构与组成Docker容器生态容器核心技术容器规范容器平台技术 为什么使用DockerDocker的应用场景 什么是 Docker 简单地讲&#xff0c;Docker就是一个应用容器…

面向对象类的设计和实现

实验目标 本实验任务是实现 Java 类的设计和实现&#xff0c;实验任务是根据每年新生的报到流程&#xff0c; 设计一 个学生管理系统&#xff0c;实现学生的注册和报到功能。设置类的基本属性&#xff0c;实现 getter 和 setter 方 法&#xff0c;通过 set 方法设置…