首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >全方面熟悉Maven项目管理工具(二)坐标、pom.xml文件的解读!

全方面熟悉Maven项目管理工具(二)坐标、pom.xml文件的解读!

作者头像
用户11865655
发布2025-10-13 16:27:14
发布2025-10-13 16:27:14
800
代码可运行
举报
文章被收录于专栏:CSDN专栏CSDN专栏
运行总次数:0
代码可运行

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 包的存储路径之间的对应关系

坐标:

代码语言:javascript
代码运行次数:0
运行
复制
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>

上面坐标对应的 jar 包在 Maven 本地仓库中的位置:

代码语言:javascript
代码运行次数:0
运行
复制
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,快速开发类型;

代码语言:javascript
代码运行次数:0
运行
复制
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 demonstrates
      some of the supported document types like APT, XDoc, and FML and demonstrates how
      to 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

代码语言:javascript
代码运行次数:0
运行
复制
Define value for property 'groupId': 配置 groupId
  • groupId:公司或组织的域名反写+项目名称
2.2.3 配置 arifactId

配置完 组ID 后,还需要配置项目的 ID

代码语言:javascript
代码运行次数:0
运行
复制
Define value for property 'artifactId': 项目ID
  • artifactId:项目的名称;例如:pro01-maven-java
2.2.4 配置 version

当【组ID】和【项目ID】配置完毕后,最后配置 version。

maven默认将版本设置成 1.0-SNAPSHOT 快照版本

代码语言:javascript
代码运行次数:0
运行
复制
Define value for property 'version' 1.0-SNAPSHOT: :

一般来说直接回车即可

2.2.5 确认信息

之前步骤全部配置完毕,maven会自主的让你确认配置信息是否正确

代码语言:javascript
代码运行次数:0
运行
复制
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.demomaven
 Y: :

Y::提示出来,再次回车即可完成项目的创建

代码语言:javascript
代码运行次数:0
运行
复制
[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 版本

代码语言:javascript
代码运行次数:0
运行
复制
<!--依赖信息配置-->
<!--dependencies复数标签:内部包含dependency单数标签-->
<dependencies>
    <!--dependency单数标签:配置一个具体的依赖-->
    <dependency>
        <!--通过坐标来依赖其他jar包-->
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>

        <!-- 依赖范围 -->
        <scope>test</scope>
    </dependency>
</dependencies>

4. 自动生成的 pom.xml 解读

代码语言:javascript
代码运行次数:0
运行
复制
<!-- 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. 😊前篇快递

6. 👉好文相推

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 坐标(核心概念)
    • 1.1 数学中的坐标
    • 1.2 Maven 中的坐标
      • 1.2.1 向量说明:
      • 1.2.2 三个向量的取值方式:
    • 1.3 坐标和仓库中 jar 包的存储路径之间的对应关系
  • 2. 实验操作:
    • 2.1 创建目录作为后面操作的工作空间
    • 2.2 使用命令生成 Maven 工程
      • 2.2.1 archetype:generate :使用generate插件
      • 2.2.2 配置 groupId
      • 2.2.3 配置 arifactId
      • 2.2.4 配置 version
      • 2.2.5 确认信息
  • 3. 调整工程
  • 4. 自动生成的 pom.xml 解读
  • 5. 😊前篇快递
  • 6. 👉好文相推
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档