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

全方面熟悉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
      • 域名倒序.项目名称
  • 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. 坐标&#xff08;核心概念&#xff09; 1.1 数学中的坐标 使用 x、y、z 三个向量作为空间的坐标系&#xff0c;可以在空间中唯一的定位到一个点 1.2 Maven 中的坐标 1.2.1 向量说明&#xff1a; 使用三个向量在 Maven的仓库 中唯一的定位到一个 jar 包 groupId&#xf…...

php常用设计模式之单例模式

设计模式是我们日常开发中最常用的编程模式之一&#xff0c;也是面试中最高频的考点之一。通过合理运用设计模式&#xff0c;可以使代码结构更加清晰、易于维护。通过这篇文章 我也讲一下设计模式中的单例模式&#xff0c;了解下它的原理和适用场景。 单例模式 单例模式&…...

一文搞懂Android主题和样式

1. 概念与作用 1.1 定义与组成 Android Theme是用于定义应用程序或其部分的视觉和界面风格的一种资源。主题在Android中扮演着重要的角色&#xff0c;它们允许开发者统一和自定义应用的外观和感觉。一个主题定义了一组属性集合&#xff0c;这些属性可以是颜色、字体、控件样式…...

360与重庆科技大学战略携手,为数字中国建设输送实战人才

近日&#xff0c;360数字安全集团与重庆科技大学正式签订了战略合作协议&#xff0c;双方将围绕创新人才培养、科研技术攻关、专业实验室共建、车联网安全以及社会服务等多个维度展开深度合作&#xff0c;共同打造数字安全人才培养新高地&#xff0c;为数字重庆的建设与发展注入…...

基于异常合成的图像异常检测方法

基于异常合成的图像异常检测方法 基于异常合成思路实现图像异常检测的方法&#xff0c;它们的核心思路是&#xff1a; 试图通过合成异常样本穷尽所有可能出现的异常类型&#xff0c;从而将无监督的异常检测&#xff08;one class classification&#xff09;建模为一个全监督…...

机器学习方向在算法优化上有哪些创新点?

以下是机器学习算法优化方面的一些创新点: 一、优化算法自身的改进 随机梯度下降(SGD)的变体 Adagrad 传统的随机梯度下降算法使用固定的学习率,而Adagrad根据每个参数的历史梯度信息自适应地调整学习率。对于稀疏数据,它可以为不同的参数分配不同的学习率,使得频繁出现…...

基于yolov8的道路交通事故检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOV8的道路交通事故检测系统是一种先进的智能交通监控解决方案&#xff0c;它利用YOLOV8这一前沿的目标检测算法&#xff0c;实现对交通事故的高效、实时检测。 该系统结合了自定义的道路交通事故数据集&#xff0c;对YOLOV8模型进行了针对性的训练与优化…...

HttpUtils 详解

一、详解 1.1 介绍 现如今的 Web 项目&#xff0c;由服务端向外发起网络请求的场景&#xff0c;基本上随处可见&#xff01; 传统情况下&#xff0c;在服务端代码里访问 http 服务时&#xff0c;一般会使用 JDK 的 HttpURLConnection 或者 Apache 的 HttpClient&#xff0c;不…...

云计算第四阶段: 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

不久前&#xff0c;我在B站、视频号和 YouTube 都陆续发布了新的一套免费视频课程《智能合约开发工具Remix》&#xff0c;总共分为了 9 个小节的视频&#xff0c;以下分别是这 9 个小节在 B 站的视频链接&#xff0c;喜欢直接看视频的伙伴可以去 B 站观看&#xff1a; 概况文件…...

YYF桌面 1.2 | 个性化桌面体验,清爽美观。

YYF桌面是一款经过定制的安卓桌面启动器&#xff0c;此版本基于1.2版本进行了一系列个性化修改。主界面快捷图标进行了美化处理&#xff0c;并采用了清爽半透明的图标背景。取消了底部快捷键&#xff0c;并重新制作了“全部应用”按钮&#xff0c;保留了动态效果。修改了右上角…...

【人工智能/计算机工程/大数据】第五届人工智能与计算工程国际学术会议(ICAICE 2024,2024年11月8-10日)

The 5th International Conference on Artificial Intelligence and Computer Engineering 第五届人工智能与计算工程国际学术会议&#xff08;ICAICE 2024&#xff09; 会议官网&#xff1a;www.event-icaice.org The 5th International Conference on Artificial Intellige…...

uni-app录音功能

纯纯干货&#xff0c;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、查看调用堆栈、汇编、寄存器 总结 前言 这篇文章大都是我的个人笔记&#xff1a; 调试在日常程序设计中是很重要的。调试说白了就是为了解决代…...

连锁收银系统

商淘云连锁管理系统助力连锁企业实现“人货账”全方位数字化管理&#xff0c;它依托连锁品牌进销存管理实现门店订货、线下收银、线上商城、会员营销等一体化管理。 门店订货补货支持连锁直营、加盟 不同门店不同进货价、不同门店不同商品、不同门店在线或者账期支付、门店PC或…...

5.2024.10.21

2024.10.21 学习和复习 学习QT的流程控制、函数、内联函数复习C语言printf练习 问题及解决方案 C学到函数之后有些吃力代码逻辑能力不大行&#xff0c;需要巩固一下C语言基础再挤多点时间去学习嵌入式写代码前先把大概思路写出来 碎碎念 最近作业比较多&#xff0c;有点静不下…...

前端Socket互动小游戏开发体验分享

随着实时网络通信技术的不断发展&#xff0c;基于WebSocket的前端互动小游戏成为了一种非常流行的选择。WebSocket允许客户端和服务器之间进行双向通信&#xff0c;为游戏互动带来了更快的响应时间和更流畅的体验。本文将通过一个简单的互动小游戏来探讨前端如何利用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性价比高的超声波清洗机推荐

双十一今天晚上就可以越热开抢了&#xff0c;还不知道购买什么物品的小伙伴们赶紧来看看我这篇文章&#xff0c;在众多家居好物中&#xff0c;超声波清洗机以其高效、便捷的特点&#xff0c;成为了许多家庭的必备神器。2024年&#xff0c;市场上涌现出了不少性价比超高的产品&a…...

比亚迪车机安装第三方应用教程

比亚迪车机安装第三方应用教程 比亚迪车机U盘安装APP&#xff0c; 无论是dlink3.0还是4.0都是安卓系统&#xff0c;因此理论上安卓应用是都可以安装的&#xff0c;主要就是横屏和竖屏的区别。在比亚迪上安装软件我主要推荐两种方法。 第一种&#xff0c;直接从电脑端下载安装布…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...