全方面熟悉Maven项目管理工具(二)坐标、pom.xml文件的解读!
1. 坐标(核心概念)
1.1 数学中的坐标

使用 x、y、z 三个向量作为空间的坐标系,可以在空间中唯一的定位到一个点
1.2 Maven 中的坐标
1.2.1 向量说明:
使用三个向量在 Maven的仓库 中唯一的定位到一个 jar 包
- groupId: 公司或组织的ID
- artifactId: 一个项目或者是项目中的一个模块的 Id
- version: 版本号
1.2.2 三个向量的取值方式:
- groupId:公司或组织域名的倒序,通常也会加上项目名称
- 例如:com.renexdmo.testproject
- 域名倒序.项目名称
- 例如:com.renexdmo.testproject
- artifactId:模块的名称,将来作为 Maven 工程的工程名
- version:模块的版本号,根据自己的需要设定
- 例如:SNAPSHOT 标识快照版本,正在迭代过程中,不稳定的版本
- 例如:RELEASE 标识版本
举例:
- groupId: com.atguigu.maven
- artifactId: pro01-atguigu-maven
- version: 1.0-SNAPSHOT
1.3 坐标和仓库中 jar 包的存储路径之间的对应关系
坐标:
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
上面坐标对应的 jar 包在 Maven 本地仓库中的位置:
Maven 本地仓库根目录\javax.servlet\servlet-api\2.5\servlet-api-2.5.jar
2. 实验操作:
2.1 创建目录作为后面操作的工作空间
创建指定的工作空间目录:
例如:
F:\Java\学习案例\MavenCommand
2.2 使用命令生成 Maven 工程
2.2.1 archetype:generate :使用generate插件
运行 mvn archetype:generate 命令,生成Maven工程

生成后配置我们的Maven工程,一共默认有 10 种Maven工程类型。默认为 7,快速开发类型;
1: internal -> org.apache.maven.archetypes:maven-archetype-archetype (An archetype which contains a sample archetype.)
2: internal -> org.apache.maven.archetypes:maven-archetype-j2ee-simple (An archetype which contains a simplifed sample J2EE application.)
3: internal -> org.apache.maven.archetypes:maven-archetype-plugin (An archetype which contains a sample Maven plugin.)
4: internal -> org.apache.maven.archetypes:maven-archetype-plugin-site (An archetype which contains a sample Maven plugin site.This archetype can be layered upon an existing Maven plugin project.)
5: internal -> org.apache.maven.archetypes:maven-archetype-portlet (An archetype which contains a sample JSR-268 Portlet.)
6: internal -> org.apache.maven.archetypes:maven-archetype-profiles ()
7: internal -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
8: internal -> org.apache.maven.archetypes:maven-archetype-site (An archetype which contains a sample Maven site which demonstratessome of the supported document types like APT, XDoc, and FML and demonstrates howto i18n your site. This archetype can be layered upon an existing Maven project.)
9: internal -> org.apache.maven.archetypes:maven-archetype-site-simple (An archetype which contains a sample Maven site.)
10: internal -> org.apache.maven.archetypes:maven-archetype-webapp (An archetype which contains a sample Maven Webapp project.)
↓翻译↓
1:内部→org.apache.maven。原型:maven-原型-原型(包含一个样本原型的原型)
2:内部→org.apache.maven。原型:maven- prototype - J2EE -simple(包含一个简化的J2EE应用程>序示例的原型。)
3:内部→org.apache.maven。Maven - prototype: Maven - prototype -plugin(一个包含Maven插件示例的原型)
4:内部→org.apache.maven。Maven - prototype -plugin-site(一个包含Maven插件站点示例的原型。
这个原型可以叠加在现有的Maven插件项目上。)
5:内部→org.apache.maven。原型:maven- prototype - Portlet(包含一个示例JSR-268 Portlet的原型。)
6:内部→org.apache.maven。原型:maven-archetype-profiles ()
7:内部→org.apache.maven。prototype: Maven - prototype -quickstart(一个包含Maven项目示例的原型。)
8:内部→org.apache.maven。prototype: Maven - prototype -site(一个包含Maven示例站点的原型
支持的一些文档类型,如APT、XDoc和FML,并演示如何使用
到i18n您的站点。这个原型可以叠加在现有的Maven项目上。)
9:内部→org.apache.maven。prototype: Maven - prototype -site-simple(一个包含Maven站点示例的原型。)
10:内部→org.apache.maven。Maven - prototype - Webapp(一个包含Maven Webapp项目示例的原型。)
2.2.2 配置 groupId
当指定好创建的 maven 模式后,需要配置配置 groupId
Define value for property 'groupId': 配置 groupId
- groupId:公司或组织的域名反写+项目名称
2.2.3 配置 arifactId
配置完 组ID 后,还需要配置项目的 ID
Define value for property 'artifactId': 项目ID
- artifactId:项目的名称;例如:pro01-maven-java
2.2.4 配置 version
当【组ID】和【项目ID】配置完毕后,最后配置 version。
maven默认将版本设置成 1.0-SNAPSHOT 快照版本
Define value for property 'version' 1.0-SNAPSHOT: :
一般来说直接回车即可
2.2.5 确认信息
之前步骤全部配置完毕,maven会自主的让你确认配置信息是否正确
Define value for property 'package' com.renexdemo.demomaven: :
Confirm properties configuration:
groupId: com.renexdemo.demomaven
artifactId: pro02-maven-java
version: 1.0-SNAPSHOT
package: com.renexdemo.demomavenY: :
当 Y::提示出来,再次回车即可完成项目的创建
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: F:\Java\学习案例\MavenCommand
[INFO] Parameter: package, Value: com.renexdemo.demomaven
[INFO] Parameter: groupId, Value: com.renexdemo.demomaven
[INFO] Parameter: artifactId, Value: pro02-maven-java
[INFO] Parameter: packageName, Value: com.renexdemo.demomaven
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: F:\Java\学习案例\MavenCommand\pro02-maven-java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 06:47 min
[INFO] Finished at: 2022-06-16T15:47:36+08:00
[INFO] ------------------------------------------------------------------------

3. 调整工程
Maven 默认生成的工程,对 junit 的依赖是比较低的 3.8.1 版本,我们可以改成更为合适的 4.12 版本
<!--依赖信息配置-->
<!--dependencies复数标签:内部包含dependency单数标签-->
<dependencies><!--dependency单数标签:配置一个具体的依赖--><dependency><!--通过坐标来依赖其他jar包--><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><!-- 依赖范围 --><scope>test</scope></dependency>
</dependencies>
4. 自动生成的 pom.xml 解读
<!-- project: 根标签,表示对当前工程进行配置、管理 -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><!--modelVersion:从 Maven2 开始就固定是 4.0.0-->
<!-- 代表当前 pom.xml 所采用的标签结构--><modelVersion>4.0.0</modelVersion><!-- 坐标信息-->
<!-- groupId:坐标向量之一,代表公司或组织开发的某一个项目--><groupId>com.renexdemo.mavendemo</groupId>
<!-- artifactId:坐标向量之一,代表项目下的某一个模块 --><artifactId>pro01-maven-java</artifactId>
<!-- version:坐标向量之一,代表当前模块的版本 --><version>1.0-SNAPSHOT</version><!-- packaging:打包方式 -->
<!-- 取值jar:生成 jar 包,说明这是一个 Java 工程 -->
<!-- 取值 war:生成 war 包,说明这是一个 Web 工程 -->
<!-- 取值pom:说明这个工程是用来管理其他工程的工程 --><packaging>jar</packaging><name>pro01-maven-java</name><url>http://maven.apache.org</url><!-- 在 Maven 中定义属性值 --><properties>
<!-- 在构建过程中读取源码所用的字符集 --><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!--dependencies:配置具体依赖信息,可以包含多个 dependency 标签--><dependencies>
<!-- dependency:配置一个具体的依赖信息--><dependency>
<!-- 依赖的坐标信息:导入哪个 jar 包,就配置它的坐标信息 --><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><!--scope:配置当前依赖的范围--><scope>test</scope></dependency></dependencies>
</project>
5. 😊前篇快递
- 认识Maven、Maven如何安装?
6. 👉好文相推
- 2-3树思想与红黑树的实现与基本原理
- ElasticSearch8.7 搭配 SpringDataElasticSearch5.1 的使用
- B树和B+树的实现原理阐述
相关文章:
全方面熟悉Maven项目管理工具(二)坐标、pom.xml文件的解读!
1. 坐标(核心概念) 1.1 数学中的坐标 使用 x、y、z 三个向量作为空间的坐标系,可以在空间中唯一的定位到一个点 1.2 Maven 中的坐标 1.2.1 向量说明: 使用三个向量在 Maven的仓库 中唯一的定位到一个 jar 包 groupId…...
php常用设计模式之单例模式
设计模式是我们日常开发中最常用的编程模式之一,也是面试中最高频的考点之一。通过合理运用设计模式,可以使代码结构更加清晰、易于维护。通过这篇文章 我也讲一下设计模式中的单例模式,了解下它的原理和适用场景。 单例模式 单例模式&…...
一文搞懂Android主题和样式
1. 概念与作用 1.1 定义与组成 Android Theme是用于定义应用程序或其部分的视觉和界面风格的一种资源。主题在Android中扮演着重要的角色,它们允许开发者统一和自定义应用的外观和感觉。一个主题定义了一组属性集合,这些属性可以是颜色、字体、控件样式…...
360与重庆科技大学战略携手,为数字中国建设输送实战人才
近日,360数字安全集团与重庆科技大学正式签订了战略合作协议,双方将围绕创新人才培养、科研技术攻关、专业实验室共建、车联网安全以及社会服务等多个维度展开深度合作,共同打造数字安全人才培养新高地,为数字重庆的建设与发展注入…...
基于异常合成的图像异常检测方法
基于异常合成的图像异常检测方法 基于异常合成思路实现图像异常检测的方法,它们的核心思路是: 试图通过合成异常样本穷尽所有可能出现的异常类型,从而将无监督的异常检测(one class classification)建模为一个全监督…...
机器学习方向在算法优化上有哪些创新点?
以下是机器学习算法优化方面的一些创新点: 一、优化算法自身的改进 随机梯度下降(SGD)的变体 Adagrad 传统的随机梯度下降算法使用固定的学习率,而Adagrad根据每个参数的历史梯度信息自适应地调整学习率。对于稀疏数据,它可以为不同的参数分配不同的学习率,使得频繁出现…...
基于yolov8的道路交通事故检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
【算法介绍】 基于YOLOV8的道路交通事故检测系统是一种先进的智能交通监控解决方案,它利用YOLOV8这一前沿的目标检测算法,实现对交通事故的高效、实时检测。 该系统结合了自定义的道路交通事故数据集,对YOLOV8模型进行了针对性的训练与优化…...
HttpUtils 详解
一、详解 1.1 介绍 现如今的 Web 项目,由服务端向外发起网络请求的场景,基本上随处可见! 传统情况下,在服务端代码里访问 http 服务时,一般会使用 JDK 的 HttpURLConnection 或者 Apache 的 HttpClient,不…...
云计算第四阶段: cloud二周目 07-08
cloud 07 一、k8s服务管理 创建服务 # 资源清单文件 [rootmaster ~]# kubectl create service clusterip websvc --tcp80:80 --dry-runclient -o yaml [rootmaster ~]# vim websvc.yaml --- kind: Service apiVersion: v1 metadata:name: websvc spec:type: ClusterIPselector…...
智能合约开发工具Remix
不久前,我在B站、视频号和 YouTube 都陆续发布了新的一套免费视频课程《智能合约开发工具Remix》,总共分为了 9 个小节的视频,以下分别是这 9 个小节在 B 站的视频链接,喜欢直接看视频的伙伴可以去 B 站观看: 概况文件…...
YYF桌面 1.2 | 个性化桌面体验,清爽美观。
YYF桌面是一款经过定制的安卓桌面启动器,此版本基于1.2版本进行了一系列个性化修改。主界面快捷图标进行了美化处理,并采用了清爽半透明的图标背景。取消了底部快捷键,并重新制作了“全部应用”按钮,保留了动态效果。修改了右上角…...
【人工智能/计算机工程/大数据】第五届人工智能与计算工程国际学术会议(ICAICE 2024,2024年11月8-10日)
The 5th International Conference on Artificial Intelligence and Computer Engineering 第五届人工智能与计算工程国际学术会议(ICAICE 2024) 会议官网:www.event-icaice.org The 5th International Conference on Artificial Intellige…...
uni-app录音功能
纯纯干货,cv即用 <template><!-- 录音页面 --><view class"page"><view class"tape_box"><view class"upload_box1"><view class"upload_top"><view class"upload_img_title…...
C语言【调试】(个人笔记版)
调试 前言一、Bug二、调试工具1.DeBug2.Release 三、调试快捷键1、断点 四、调试时查看程序的当前信息1、查看临时变量2、查看内存3、查看调用堆栈、汇编、寄存器 总结 前言 这篇文章大都是我的个人笔记: 调试在日常程序设计中是很重要的。调试说白了就是为了解决代…...
连锁收银系统
商淘云连锁管理系统助力连锁企业实现“人货账”全方位数字化管理,它依托连锁品牌进销存管理实现门店订货、线下收银、线上商城、会员营销等一体化管理。 门店订货补货支持连锁直营、加盟 不同门店不同进货价、不同门店不同商品、不同门店在线或者账期支付、门店PC或…...
5.2024.10.21
2024.10.21 学习和复习 学习QT的流程控制、函数、内联函数复习C语言printf练习 问题及解决方案 C学到函数之后有些吃力代码逻辑能力不大行,需要巩固一下C语言基础再挤多点时间去学习嵌入式写代码前先把大概思路写出来 碎碎念 最近作业比较多,有点静不下…...
前端Socket互动小游戏开发体验分享
随着实时网络通信技术的不断发展,基于WebSocket的前端互动小游戏成为了一种非常流行的选择。WebSocket允许客户端和服务器之间进行双向通信,为游戏互动带来了更快的响应时间和更流畅的体验。本文将通过一个简单的互动小游戏来探讨前端如何利用WebSocket技…...
react项目,通过自定义 separator 属性来修改日期选择器中间的分隔符:
1. 引入必要的依赖 确保你已经引入了 DatePicker 组件和 moment 库。 import React, { Component } from react; import { DatePicker } from antd; import moment from moment; const { RangePicker } DatePicker; const dateFormat "YYYY/MM/DD"; 2. 定义父组…...
双十一有啥好用的家居好物推荐?2024性价比高的超声波清洗机推荐
双十一今天晚上就可以越热开抢了,还不知道购买什么物品的小伙伴们赶紧来看看我这篇文章,在众多家居好物中,超声波清洗机以其高效、便捷的特点,成为了许多家庭的必备神器。2024年,市场上涌现出了不少性价比超高的产品&a…...
比亚迪车机安装第三方应用教程
比亚迪车机安装第三方应用教程 比亚迪车机U盘安装APP, 无论是dlink3.0还是4.0都是安卓系统,因此理论上安卓应用是都可以安装的,主要就是横屏和竖屏的区别。在比亚迪上安装软件我主要推荐两种方法。 第一种,直接从电脑端下载安装布…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
