基于IDEA的Maven(坐标信息介绍和编写)

这篇博客来学习和分析一下: " pom.xml " 所生成的最基本的信息。

之前的博客中讲到,学 Maven 就是学 " pom.xml " 的配置。后面也会围绕这个文件进行学习。


目录

[一、分析 pom.xml 文件](#一、分析 pom.xml 文件)

[(1)分析的 "pom.xml" 文件内容。](#(1)分析的 "pom.xml" 文件内容。)

(2)首先是:4.0.0

[(3)然后以下它们三个(组合起来称 "坐标信息")](#(3)然后以下它们三个(组合起来称 "坐标信息"))

(4)通常如何配置本工程的坐标信息?

[1、" groupId "。](#1、" groupId "。)

如果当前这个工程当作是一个独立的项目

如果当前这个工程只是这个项目当中的一个模块


一、分析 pom.xml 文件

(1)分析的 "pom.xml" 文件内容。
java 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<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>4.0.0</modelVersion>

    <groupId>com.fs</groupId>
    <artifactId>hello</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

</project>
(2)首先是:<modelVersion>4.0.0</modelVersion>

这个可以去无视它,它是跟 Maven的版本相关,通常不会去改。

(3)然后以下它们三个(组合起来称 "坐标信息")

<groupId>com.fs</groupId>
<artifactId>hello</artifactId>
<version>1.0-SNAPSHOT</version>

1、和数学一样,在一个空间有三个坐标,这三个坐标可以确定空间中的一个点。

2、在 Maven当中,同样也是由这三个标量,去确定一个 "jar 包"所在的位置。我们之前了解到 Maven 不会像本地项目一样,直接把 "jar 包"下载本地,再通过项目去绑定 "jar 包"。

3、也就是 Maven 项目想要依赖一个 "jar 包" ,就是通过上面三个。首先会去本地仓库寻找(也就是之前在 settings.xml 设置的一个自己的仓库地址),如果本地仓库没有,就会去我们配置的 " 镜像 ",去远程通过镜像地址通过网络进行下载。(阿里云->华为云->Maven 中央本地仓库,依次把需要的下载到本地仓库)

4、而我们举的这个例子的三个,这个其实是本项目的一个坐标信息。因为我们本项目这个 hello也可以打包成一个 "jar 包"。当别的 Maven 项目想要引用这个 hello的某个类,就直接通过当前这个项目的坐标信息来引用的。

5、所以每个 Maven 项目都会有一个唯一的坐标。保证能够确认到唯一的"jar 包"了。

(4)通常如何配置本工程的坐标信息?
1、" groupId "。
  • 要分情况:当前的这个工程是一个项目还是一个模块?一个工程可能有时候会当成一个项目去用,而一个项目有时候会有很多个像 "hello" 这种工程的组合。

(这里会有一个 "聚合Maven项目" 的概念,也就是一个工程)

  • 也就是当我们以后开发一个项目的时候,它不一定只有一个工程组成,不过当然一个工程可以当一个项目。这两种情况所配置的坐标信息不一样。

如果当前这个工程当作是一个独立的项目

那么 " groupId " 当中一个域名(然后反过来)。如 baidu.com ------> com.baidu

那么 " artifactId " :它是一个项目名:如 hello 、网盘、email 等等对应的一个名称。

然后是 " version " ,不管是项目还是模块,写法和命名方式都是一样的。

version:1.0-SNAPSHOT ,其实是指还没上线的快照版。如果是上线了就会改成另外一个词:version:1.0-REALEASE (已发布上线的意思)。然后 1.0 啥的就是版本。(运维人员或者项目管理人员处理的)简而言之:就是代表我们项目的一个版本。


如果当前这个工程只是这个项目当中的一个模块
  • 举个例子: 项目 AA (a01,a02,b01) 里面有三个工程(也就是它包含三个模块)

那么 " groupId " 当中一个域名(然后反过来,再加上当前的项目名)。比如:com.baidu.AA

那么 " artifactId " :它是每一个工程(模块)的名称:如 a01 、a02、b02...等等对应的一个名称。因为三个工程就会有三个坐标它们各种的artifactId。也就对应着是叫模块名了。


上面的坐标信息是本工程的坐标信息。怎么通过一个坐标信息去引用 "jar 包"下篇博客进行学习。

相关推荐
韩立学长19 分钟前
【开题答辩实录分享】以《智慧物业管理系统的设计与实现》为例进行答辩实录分享
java·后端·mysql
10km23 分钟前
java:json-path支持fastjson作为JSON解析提供者的技术实现
java·json·fastjson·json-path
小张程序人生26 分钟前
深入理解SpringSecurity从入门到实战
java
d***956242 分钟前
springboot接入deepseek深度求索 java
java·spring boot·后端
CoderYanger1 小时前
C.滑动窗口-越短越合法/求最长/最大——2958. 最多 K 个重复元素的最长子数组
java·数据结构·算法·leetcode·哈希算法·1024程序员节
洞窝技术1 小时前
Redis 4.0 升级至 5.0 实施手册
java·redis
无代码专家1 小时前
设备巡检数字化解决方案:构建高效闭环管理体系
java·大数据·人工智能
tanxiaomi2 小时前
Redisson分布式锁 和 乐观锁的使用场景
java·分布式·mysql·面试
零匠学堂20252 小时前
移动学习系统,如何提升企业培训效果?
java·开发语言·spring boot·学习·音视频
小杨快跑~2 小时前
从装饰者到桥接再到工厂:模式组合的艺术
java·开发语言·设计模式