基于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 包"下篇博客进行学习。

相关推荐
阿伟*rui7 分钟前
配置管理,雪崩问题分析,sentinel的使用
java·spring boot·sentinel
XiaoLeisj2 小时前
【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
java·开发语言·java-ee
paopaokaka_luck2 小时前
【360】基于springboot的志愿服务管理系统
java·spring boot·后端·spring·毕业设计
dayouziei2 小时前
java的类加载机制的学习
java·学习
Yaml44 小时前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍
小小小妮子~4 小时前
Spring Boot详解:从入门到精通
java·spring boot·后端
hong1616884 小时前
Spring Boot中实现多数据源连接和切换的方案
java·spring boot·后端
aloha_7895 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
记录成长java5 小时前
ServletContext,Cookie,HttpSession的使用
java·开发语言·servlet
睡觉谁叫~~~5 小时前
一文解秘Rust如何与Java互操作
java·开发语言·后端·rust