JAVA -- IDEA -- MAVEN -- POM.XML -- XML的笔记详解日后在此更新

Maven 的pom理解
图**

  1. 1

**.在这里插入图片描述

使用XML表示,名称叫做pom.xml。

xml表示这是pom.xml文件 version是xml版本是1.0号   encoding="UTF-8 是中文编码,xml传输数据的时候用字符编码,utf-8来自国际万马表的分支,意思就是国际表的一小部分,否则遇见中文就是乱码,不识别

<?如果没有理解错的话,两个问好就是注释声明用的?>
<?xml version="1.0" encoding="UTF-8"?>

Project 是文档的顶级元素这是规则,就像需要什么东西去包裹
project它会帮你生成整个完整的工程结构,标签是根标签是默认的也是规则.

maven.apache.org/POM/4.0.0"表示是一个网址查看图**1**
/POM/4.0.0是pom的版本号
xmlns就是Java中的命名空间,区分一个xml重复的连接地址 xmlns:xsi就是区分
xmlns中的网址都可以打开,都是地址,下载包的地址
<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">
         

	parent的作用,依赖的版本号定义在parent里面,因为是单继承我这里用,只能继承一个,所以一般不用
				<parent>
				
	modelVersion包含4.0.0.这是目前唯一支持Maven 2的POM版本,并且始终是必需的
			<modelVersion>4.0.0</modelVersion>
			
          	 artifactId是项目名称
       		<artifactId>01-sca</artifactId>
       		
       			 groupId是java项目文件下的包名,也是整个项目的唯一ID
        	<groupId>com.jt</groupId>
        	
        	    version是项目的默认版本号,如果项目大改动就写2.0,小改动就是写1.1
        	<version>1.0-SNAPSHOT</version>
        	
        parent的作用,依赖的版本号定义在parent里面,因为是单继承我这里用,只能继承一个,所以一般不用	
    	</parent>


 **

> 这里是引用如果子项目的 <dependencies> 标签的子标签 <dependency> 里面没有写 <version> 标签,  
> 那么maven 就会自动到父项目的 <dependencyManagement> 标签里面去找有没有对该 artifactId 和groupId 进行过版本声明,如果有,就继承它,如果没有就会报错,告诉你 <dependency> 标签里面必须写一个 <version>
> 标签。 如果子项目的 <dependencies> 标签的子标签 <dependency> 里面写了 <version>
> 标签并指定了具体的版本,那么无论父项目的 <dependencyManagement> 标签中有无对该 jar 包的 version
> 声明,都以子项目的 version 为准
//只是对版本进行管理,不会实际引入jar 
<dependencyManagement>   不能和parent一起用,属于继承,一般parent在dependencyManagement子类有
      <dependencies>  依赖包裹需要下载的jar包
            <dependency> 这是要帮你存储的地方
  <groupId>org.springframework</groupId> 下载后存储到org/springframework/spring-core文件
   <artifactId>spring-core</artifactId> 下载后存储到org/springframework/spring-core文件
<version>3.2.7</version> 下载后org/springframework/spring-core/org.springframework.spring-core.3.2.7.jar
            </dependency>  这是要帮你存储的地方
    </dependencies> 依赖包裹需要下载的jar包
</dependencyManagement> 不能和parent一起用,parent属于继承,一般parent在dependencyManagement子类中有
   
//会实际下载jar包 
<dependencies> 依赖包裹需要下载的jar包
       <dependency> 这是要帮你存储的地方
                <groupId>org.springframework</groupId> 文件路径
                <artifactId>spring-core</artifactId> 文件路径
       </dependency> 这是要帮你存储的地方
       这里应该有版本号的但是现在需要到dependencyManagement中的org.springframework去找父类版本,以后,该版本就需要改父类就可以了
</dependencies>依赖包裹需要下载的jar包

**




 <!--    <parent>-->
<!--        <groupId>org.springframework.boot</groupId>-->
<!--        <artifactId>spring-boot-dependencies</artifactId>-->
<!--        <version>2.3.2.RELEASE</version>-->
<!--    </parent>-->

    <!--    自定义自己写的一般用到见名知意spring.boot.version属性或者默认的  中间是版本信息-->
    然后调用${spring.boot.version}
    <properties>
    	<a>我是版本号</a>下面的用${a}调用就可以得到“我是版本号”
        <spring.boot.version>2.3.2.RELEASE</spring.boot.version>
        <spring.cloud.version>Hoxton.SR9</spring.cloud.version>
        <spring.cloud.alibaba.version>2.2.6.RELEASE</spring.cloud.alibaba.version>
    </properties>

所以,我们就可以知道,SpringBoot 1.x的版本和Spring Boot 2.x是无法直接通过修改版本号就可以升级的,
但是如果要从2.1.5升级到截止到2020年3月6日的2.2.5版本的话,简单修改下版本就可以成功升级了。

先从最简单的数字版本号开始,你来说说看Spring Boot2.1.5版本号是什么意思?

不就是Spring Boot的版本号是2.1.5的版本嘛,2代表这是第二代的SpringBoot, 1的就是迭代版本,5的话就是bug修复吧??



(1)其中2: 表示的主版本号,表示是我们的SpringBoot第二代产品。 
(2)其中1: 表示的是次版本号,增加了一些新的功能但是主体的架构是没有变化的,是兼容的。 
(3)其中5: 表示的是bug修复版。 
(4)所以2.1.5合起来就是springboot的第二代版本的第1个小版本的第5次bug修复版本。



**这个标签里面的 RELEASE<version>2.3.2.RELEASE</version>RELEASE是官方要求加的,有时候不需要加
                    代表release 稳定版本
                    下面就是版本后缀的意思
snapshot 快照 
alpha 内测 
beta 公测 
release 稳定版本 
GA 最稳定版本 
Final 正式版 
Pro(professional) 专业版 
Plus 加强版 
Retail 零售版 
DEMO 演示版 
Build 内部标号 
Delux 豪华版 (deluxe:豪华的,华丽的) 
Corporation或Enterpraise 企业版 
M1 M2 M3 M是milestone的简写 里程碑的意思 
RC 版本RC:(Release Candidate),几乎就不会加入新的功能了,而主要着重于除错 
SR 修正版 
Trial 试用版 
Shareware 共享版 
Full 完全版**
以下都是常用的版本后缀列如<version>2.3.2.GA</version>RELEASE
CURRENT:当前推荐的版本 
GA:稳定版,可用于生产 
PRE :里程碑版/预览版本 
SNAPSHOT : 快照
(1)Spring Boot版本格式:主版本号.子版本号.修正版本号.软件版本阶段。 
(2)Spring Cloud版本格式:(英文)主版本号.软件阶段版本。 
(3)Spring Boot 2.3.5 :表示的是Spring Boot的第二代的第3次小版本的第5次bug修复; 
(4)build-snapshot:开发版本/快照版本; 
(5)MX:里程碑版本; 
(6)release:正式版本; 
(7)SRX:修正版本; 
(8)版本阶段:snapshot –> M1…MX –>RC1…RCX –> release –> SR1…SRX 
(9)Spring Cloud是以伦敦地铁站作为版本名称,并按地铁站名称的首字母A-Z依次命名。 
(10)Spring Boot的版本升级,发现并没有SR1...SR2的标识,所以Spring Boot这样有数字为版本的是通过最后一位数字来说明在迭代修复bug;对于Spring Cloud是英文版本号,没有数字的概念,那么就是通过.SRX的方式。



这是父类的pom.xml文件
<!--用于定义核心依赖管理dependencyManagement-->
<!--    表示将父项目的dependencyManagement拿到本POM中,不再继承parent-->
    <!--这个元素内部添加依赖及版本管理-->
    <dependencyManagement>
<!--        spring核心依赖(构建springcloud项目基础)-->
<!--        springCloud核心依赖核心(springcloud微服务)-->
<!--        springCloudAlibaba核心内容(基于springcloud)-->

            <dependencies>
                <!--Spring boot 依赖(定义了微服务规范)-->
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>2.3.2.RELEASE</version>RELEASE是官方要求加的,有时候不需要加
                    代表release 稳定版本
                    2.2.5 :第二代Spring Boot的第2个小版本的第5次bug修复; 
					CURRENT : 这是官网当前推荐的使用版本; 
						GA:这是稳定版本,可用于生产环境。

                    <scope>import</scope> <!--把spring-cloud-dependencies引入为pom 文件-->
                    <type>pom</type><!--解决单继承问题,类似parent标签,把spring-cloud-dependencies引入到dependencyManagement -->
                </dependency>

                    <!--Spring boot 依赖(微服务基础)-->
                    <dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-dependencies</artifactId>
                        <version>${spring.boot.version}</version>
                        <!--这里的import表示在其它工程中需要时直接可以引用-->
                        <scope>import</scope>
                        <!--假如依赖的scope属性值为scope,则type类型必须为pom-->
                        <type>pom</type>
                    </dependency>
                    <!--Spring Cloud 依赖(定义了微服务规范)-->
                    <dependency>
                        <groupId>org.springframework.cloud</groupId>
                        <artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR9</version>SR9补丁作用。。 一般是来弥补软件的一些BUG 或不足的地方

<!--                        1.scope为import只能在dependencyManagement中使用,且type为pom类型。-->
<!--                        2.dependencyManagement里配置并不会实际引入,只是为了版本管理,实际引入需要直接在dependencies中添加-->
                        <scope>import</scope>  导入
                        <type>pom</type> 自己找到包版本
                    </dependency>

                    <dependency>
                        <groupId>org.springframework.cloud</groupId>
                        <artifactId>spring-cloud-dependencies</artifactId>
                        <version>${spring.cloud.version}</version> 变量名导入引入
                        <scope>import</scope>
                        <type>pom</type>
                    </dependency>
                    <!--Spring Cloud Alibaba依赖(基于spring微服务规范做了具体落地实现)-->
                    <dependency>
                        <groupId>com.alibaba.cloud</groupId>
                        <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                        <version>2.2.6.RELEASE</version>
                        <scope>import</scope>
                        <type>pom</type>
                    </dependency>

                <dependency>
                    <groupId>com.alibaba.cloud</groupId>
                    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                    <version>${spring.cloud.alibaba.version}</version>
                    <scope>import</scope>
                    <type>pom</type>
                </dependency>
            </dependencies>

    </dependencyManagement>







这是子类的pom.xml文件
dependencies这是依赖包,用于包裹需要下载的jar包文件
 <dependencies>
        <!--Web服务-->
        <dependency> 存储地址
            <groupId>org.springframework.boot</groupId>文件路径
            <artifactId>spring-boot-starter-web</artifactId>文件路径
        </dependency>
        <!--服务的注册和发现(我们要讲服务注册到nacos)-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

dependencies这是依赖包,用于包裹需要下载的jar包文件
    </dependencies>



Project 是文档的顶级元素
         </project>

**

本笔记仅提供参考,日后,会不定时更新

**

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值