4.pom文件介绍Maven常用命令

1.pom.xml文件介绍.

1.1project标签和modelVersion标签介绍.

  • pom.xml文件是maven的核心文件,POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述如何构建,声明项目依赖;;


1.2依赖坐标介绍.

  • 依赖的坐标主要是由:groupid、artifiactId、version三部分组成,简称:"gav",坐标概念来自数学;

  • 坐标作用:确定资源,是资源的唯一标识。 在maven中,每个资源都是坐标,且坐标值是唯一的。如下这个坐标:

  • dependencyManagement:依赖管理器;

  • dependencies:依赖列表;

  • groupId:组织名称。 公司,团体或者单位的标识。 这个值常使用的公司域名的反写;

  • artifactId:项目名称,本项目的唯一ID,一个 groupId下面可以包含多个项目,就是靠 artifactId来区分的;

  • version:版本,项目的版本号,使用三位数字组成。主版本号.次版本号.小版本号,如:.2.5。注意:版本号中有"-SNAPSHOT",表示快照版,不是稳定的版本;而 "RELEASE" 则是稳定版/发行版的意思。    

  • scope:控制 dependency 元素的使用范围。通俗的讲,就是控制 Jar 包在哪些范围被加载和使用。常用的值有如下:

    • compile(默认):含义:compile 是默认值,如果没有指定 scope 值,该元素的默认值为 compile。被依赖项目需要参与到当前项目的编译,测试,打包,运行等阶段,打包的时候通常会包含被依赖项目。

    • provided:被依赖项目理论上可以参与编译、测试、运行等阶段,相当于compile,但是再打包阶段做了exclude(排除)的动作。适用场景:例如, 如果我们在开发一个web 应用,在编译时我们需要依赖 servlet-api.jar,但是在运行时我们不需要该 jar 包,因为这个 jar 包已由应用服务器提供,此时我们需要使用 provided 进行范围修饰。

    • runtime:表示被依赖项目无需参与项目的编译,但是会参与到项目的测试和运行。与compile相比,被依赖项目无需参与项目的编译。适用场景:例如,在编译的时候我们不需要 JDBC API 的 jar 包,而在运行的时候我们才需要 JDBC 驱动包。

    • test:表示被依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。适用场景:例如,Junit 测试。

    • system:system 元素与 provided 元素类似,但是被依赖项不会从 maven 仓库中查找,而是从本地系统中获取,systemPath 元素用于制定本地系统中 jar 文件的路径。例如:

    • import:它只使用在<dependencyManagement>中,表示从其它的pom中导入dependency的配置。适用场景:模块的继承关系中。


1.3项目打包参数配置.

  • Maven项目打包的打包方式及生成的包名由如下内容决定:

  • packing标签里面指定了打包的方式,有 jar、war、ear、pom等,默认的是 jar;

  • 打包方式不同,生成的包名不同:

    • 如果是通过 package命令打包,那么在 target里面生成的包名是:sping.war;

    • 如果是通过 install命令打包,会在 target里面生成一个包,包名是:sping.war,同时还会在本地仓库的位置生成一个包,包名是:sping-1.0-SNAPSHOT.war。

  • 打包后的jar包名字生成规范:artifactId.packaging,如当前的配置,项目打包后生成的包名就是:spring.war。


1.4插件坐标介绍.

  • pluginManagement:插件管理器;

  • plugins:插件列表;

  • plugin:引入插件的依赖,一对<plugin>标签对应一个插件。


2.Maven常用操作介绍.

2.1Maven install操作.

  • Maven install:对项目进行编译打包,并将项目转换成为 maven依赖存放在本地 maven仓库中。同时还会在 target目录和本地仓库的目录里面生成 war包,如:

    • 在 target目录里面的包名是:项目名.war,如:sping.war;也会存放在项目的本地工作空间的 taget目录里面;

    • 在本地仓库里面的包名是:项目名-版本号.war,如:spring-1.0-SNAPSHOT.war。在本地仓库的路径:E:\repository\com\wuicy\spring\1.0-SNAPSHOT;

  • 同时还会在项目的 targer目录里面和并将项目打包发布到本地工作空间的项目文件的 target目录里,如:

  • 执行该命令的时候可以先执行clean操作清除原先打包的项目,再执行install操作。


2.2Maven test操作.

  • Maven test:对项目进行编译并执行test目录里面的测试代码。


2.3Maven clean操作.

  • Maven clean:清理 target目录。在进行真正的构建项目之前进行一些清理工作,移除所有上一次构建生成的文件。执行该命令会删除项目的target目录里面的文件。


2.4Maven package操作.

  • 注意和 Maven install命令的区别;

  • Maven package:将项目打包,包名是:项目名.war,该操作只会将项目打包存放到本地工作空间的位置,不会在本地仓库粗放。如:


2.5Maven Reimport操作.

  • 该操作是刷新更新 Maven项目,如果有依赖没下载好,就可以使用该命令刷新 Maven项目,重新下载依赖,不过该命令需要先下载 Maven Helper插件才有,项目名右键。如:

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

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

相关文章

得物面试:Kafka消息0丢失,如何实现?

得物面试&#xff1a;Kafka消息0丢失&#xff0c;如何实现&#xff1f; 尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面…

新版Java面试专题视频教程——多线程篇②

新版Java面试专题视频教程——多线程篇② 0. 问题汇总0.1 线程的基础知识0.2 线程中并发安全0.3 线程池0.4 使用场景 1.线程的基础知识2.线程中并发锁3.线程池3.1 说一下线程池的核心参数&#xff08;线程池的执行原理知道嘛&#xff09;3.2 线程池中有哪些常见的阻塞队列Array…

虚拟机的内存结构

一、摘要 熟悉 Java 语言特性的同学都知道&#xff0c;相比 C、C 等编程语言&#xff0c;Java 无需通过手动方式回收内存&#xff0c;内存中所有的对象都可以交给 Java 虚拟机来帮助自动回收&#xff1b;而像 C、C 等编程语言&#xff0c;需要开发者通过代码手动释放内存资源&…

MedicalGPT 训练医疗大模型,实现了包括增量预训练、有监督微调、RLHF(奖励建模、强化学习训练)和DPO(直接偏好优化)

MedicalGPT 训练医疗大模型&#xff0c;实现了包括增量预训练、有监督微调、RLHF(奖励建模、强化学习训练)和DPO(直接偏好优化)。 MedicalGPT: Training Your Own Medical GPT Model with ChatGPT Training Pipeline. 训练医疗大模型&#xff0c;实现了包括增量预训练、有监督微…

Linux第63步_为新创建的虚拟机添加必要的目录和安装支持linux系统移植的软件

1、创建必要的目录 1)、创建“/home/zgq/linux/”目录 打开终端&#xff0c;进入“/home/zgq/”目录 输入“mkdir linux回车”&#xff0c;创建“/home/zgq/linux/”目录 输入“ls回车”&#xff0c;列举“/home/zgq/”目录的所有文件和文件夹 创建好“/home/zgq/linux/”…

Go 中的 init 如何用?它的常见应用场景有哪些呢?

嗨&#xff0c;大家好&#xff01;我是波罗学。本文是系列文章 Go 技巧第十六篇&#xff0c;系列文章查看&#xff1a;Go 语言技巧。 Go 中有一个特别的 init() 函数&#xff0c;它主要用于包的初始化。init() 函数在包被引入后会被自动执行。如果在 main 包中&#xff0c;它也…

QT基本组件

四、基本组件 Designer 设计师&#xff08;重点&#xff09; Qt包含了一个Designer程序&#xff0c;用于通过可视化界面设计开发界面&#xff0c;保存文件格式为.ui&#xff08;界面文件&#xff09;。界面文件内部使用xml语法的标签式语言。 在Qt Creator中创建文件时&#xf…

滚雪球学Java(67):深入理解 TreeMap:Java 中的有序键值映射表

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

机器人内部传感器阅读笔记及心得-位置传感器-旋转变压器、激光干涉式编码器

旋转变压器 旋转变压器是一种输出电压随转角变化的检测装置&#xff0c;是用来检测角位移的&#xff0c;其基本结构与交流绕线式异步电动机相似&#xff0c;由定子和转子组成。 旋转变压器的原理如图1所示&#xff0c;定子相当于变压器的一次侧&#xff0c;有两组在空间位置上…

MyBatis-Plus 优雅实现数据加密存储

文章目录 前言一、数据库字段加解密实现1. 定义加密类型枚举2. 定义AES密钥和偏移量3. 配置定义使用的加密类型4. 加密解密接口5. 解密解密异常类6. 加密解密实现类6.1 AES加密解密实现类6.2 Base64加密解密实现类 7. 实现数据库的字段保存加密与查询解密处理类8. MybatisPlus配…

Selenium安装与配置

文章目录 一、selenium安装1. Python环境准备&#xff1a;2. 安装Selenium&#xff1a;3. 浏览器驱动安装&#xff1a;4. 验证安装&#xff1a; 二、常见问题1. Selenium版本与浏览器驱动程序不兼容&#xff1a;2. 浏览器驱动程序路径未正确设置&#xff1a; Selenium是一个用于…

2024年1月手机市场行业分析:苹果手机份额骤降,国产高端手机成功逆袭!

小米Ultra发布。 一方面&#xff0c;我们有望看到国产手机再一次超越自己的决心&#xff0c;继续创新追逐高端&#xff1b;另一方面&#xff0c;我们也不得不正视目前手机市场所面临的危机状态。 2024年1月的线上手机市场远不如去年。根据鲸参谋数据显示&#xff0c;今年1月京…

Java面试题之分布式/微服务篇

经济依旧不景气啊&#xff0c;如此大环境下Java还是这么卷&#xff0c;又是一年一次的金三银四。 兄弟们&#xff0c;你准备好了吗&#xff1f;冲冲冲&#xff01;欧里给&#xff01; 分布式/微服务相关面试题解 题一&#xff1a;CAP理论&#xff0c;BASE理论题二&#xff1a;…

【2024软件测试面试必会技能】Postman(1): postman的介绍和安装

Postman的介绍 Postman 是一款谷歌开发的接口测试工具,使API的调试与测试更加便捷。 它提供功能强大的 Web API & HTTP 请求调试。它能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT..)&#xff0c;附带任何数量的参数 headers。 postman是一款支持http协议的接口调试…

springboot整合mybatisPlus超级详细

springboot整合mybatis-plus超级详细 一、环境二、springboot整合myBatisPlus2.1新建2.2 添加Mybatis-plus和mysql依赖2.3 修改配置文件2.4 新建包和文件2.5 新建表2.6 创建实体类2.7 创建Mapper接口2.8 创建Service接口2.9 创建Service实现类2.10 增删改查 MyBatis-Plus&#…

C# Onnx 使用onnxruntime部署实时视频帧插值

目录 介绍 效果 模型信息 项目 代码 下载 C# Onnx 使用onnxruntime部署实时视频帧插值 介绍 github地址&#xff1a;https://github.com/google-research/frame-interpolation FILM: Frame Interpolation for Large Motion, In ECCV 2022. The official Tensorflow 2…

四.QT5工具安装和环境变量的配置

1.以管理员身份运行安装包 2.登录qt账号&#xff0c;点击【next】 3.选中同意 4.选择安装目录&#xff0c;注意不能有中文和空格 5.勾选 64位 mingw。点击【next】&#xff0c;等待安装完成 6.配置环境变量

为什么很多人选用QT开发,有哪些应用实例?

在软件开发领域&#xff0c;Qt框架作为一种跨平台的C应用程序开发框架&#xff0c;近年来受到越来越多开发者的青睐。这主要得益于其卓越的跨平台性能、丰富的功能库、开发效率以及社区支持。以下将通过详实的分析&#xff0c;从不同角度探讨为什么很多人改用QT开发&#xff0c…

力扣645. 错误的集合(排序,哈希表)

Problem: 645. 错误的集合 文章目录 题目描述思路复杂度Code 题目描述 思路 1.排序 1.对nums数组按从小到大的顺序排序; 2.遍历数组时若判断两个相邻的元素则找到重复元素&#xff1b; 3.记录一个整形变量prev一次置换当前位置元素并与其作差&#xff0c;若差等于2着说明缺失的…

Mysql索引操作

1、索引语法 2、慢查询日志 慢查询日志记录了所有执行时间超过指定参数&#xff08; long_query_time &#xff0c;单位&#xff1a;秒&#xff0c;默认 10 秒&#xff09;的所有 SQL 语句的日志。 MySQL 的慢查询日志默认没有开启&#xff0c;我们可以查看一下系统变量 slo…