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

全方面熟悉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 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

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.demomaven
 Y: :

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+树的实现原理阐述

http://www.kler.cn/news/359195.html

相关文章:

  • VSCODE使用记录
  • 根据日志优化微调
  • 【刷题11】分治—快速排序
  • 精华帖分享 | 缠论系列
  • ArcGIS Pro SDK (十七)宗地结构
  • SourceMonitor,免费代码统计工具,覆盖率,圈复杂度,代码行
  • javase笔记6----集合1
  • MySQL【知识改变命运】07
  • maven父子结构的项目依赖包传递规则
  • smbms(2)
  • Jtti:phpStudy在运行PHP文件时出现中文乱码?
  • 尚动云馆·校园体育场馆管理系统(SpringBoot+Vue)
  • 数据库中存储树状关系的数据
  • 009、环形链表
  • Linux的开发工具gcc Makefile gdb的学习
  • 图书库存控制:Spring Boot进销存系统的应用
  • SAP 关于在交货单进行定价条件的确定简介
  • 【命令操作】Linux上通过mdadm配置软RAID _ 统信 _ 麒麟 _ 方德
  • postgresql进行几何抽稀(DP抽稀)
  • HSIC规范V1.0