首页 > 其他分享 >pom文件的作用和其中各个属性的作用

pom文件的作用和其中各个属性的作用

时间:2025-01-14 15:46:10浏览次数:1  
标签:依赖 项目 spring boot springframework pom 作用 属性

pom指的是project object model(项目对象模型),pom文件是Maven项目的工作基本单元,描述了项目的所有必要信息,使Maven能自动化得构建项目,定义项目的基本信息,主要用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。。

那什么是Maven?

  • Maven 是专门用于构建和管理Java相关项目的管理工具。主要作用是jar管理和工程打包

 

POM之间的关系,继承、聚合与依赖

        继承:子项目继承父项目的pom.xml,在子项目中定义父项目。

        依赖:一个dependency元素定义一个依赖关系

        聚合:聚合和关联多个项目中相同的配置,在被聚合项目中定义其子模块

        以使用${propertyName}的形式引用属性


 

#指定xml版本和编码方式
<?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>

pom中

使用groupdId+artifactId+version的形式来唯一确定一个项目

groupdId:项目的组织标识符,通常是公司的域名反转形式

artifactId:项目的唯一标识符,通常是项目名称

version:项目版本,0.0.1-SNAPSHOT 表示这是一个正在开发中的快照版本


1.打包方式packaging

 
#packaging:定义 Maven 项目的打包方式,有 JAR 、WAR 和 pom 三种格式,JAR作为项目依赖,pom打出来可以作为其他项目的maven依赖,父工程中使用;war是WEB项目
<packaging>pom</packaging>

2.parent引入父项目

#被继承父类的相关信息
    <parent>
         <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

3.父项目添加子项目modules

#在父maven文件中添加子maven模块
<modules>
        <module>user-service</module>
</modules>

4.版本定义成变量,供依赖模块引用

   #该标签相对于定义一个变量为标签值,内容可以修改,在pom文件中可以通过${标签   }表示其内容,当版本号发生改变时,只有更新properties标签中的变量就行了,不用更新所有依赖的版本号
<properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.RELEASE</spring-cloud.version>
        <mysql.version>5.1.34</mysql.version>
            <druid.version>1.1.10</druid.version>
            <junit.version>4.1.2</junit.version>
            <lombok.version>1.16.10</lombok.version>
            <log4j.vsrsion>1.2.17</log4j.vsrsion>
            <springboot.version>2.1.4.RELEASE</springboot.version>
            <spring-cloud-alibaba.version>2.1.2.RELEASE</spring-cloud-alibaba.version>
    </properties>

5.dependencies 项目依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
</dependencies>

6.dependencyManagement

        <dependencyManagement>
            <dependencies>

                <!-- springcloud的依赖-->
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Greenwich.SR1</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <!-- springboot的依赖-->
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
<!--                    <version>2.1.4.RELEASE</version>-->
                    <version>${springboot.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>


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

                <!-- 工具包-->
                <dependency>
                    <groupId>cn.hutool</groupId>
                    <artifactId>hutool-all</artifactId>
                    <version>5.1.0</version>
                </dependency>
            </dependencies>
        </dependencyManagement>

7.build项目打包

  <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${springboot.version}</version>
            </plugin>
        </plugins>
    </build>

 

 

 


  1. sd

标签:依赖,项目,spring,boot,springframework,pom,作用,属性
From: https://www.cnblogs.com/shuqing0803/p/18670725

相关文章

  • idea中,在pom文件引入jwt使用,JwtTes测试报错Cannot resolve method ‘withClaim(String
    JwtTes测试类中报错Cannotresolvemethod'withClaim(String,Map<String,Object>)'  1.报错报这个错误可能是jwt版本问题,下面请看我的报错文件JwtTest.javapom.xml找了好一会,以为是没加分号的原因,以为是用了中文标点,结果检查了一遍,代码没有问题,标点没有问题。......
  • 重回C语言之老兵重装上阵(五)C语言作用域规则
    C语言中的作用域(Scope)定义了一个变量或函数名可以被访问的范围。作用域规则帮助我们了解变量和函数在代码中有效的区域。C语言中的作用域主要分为两类:变量作用域和函数作用域。1.作用域的类型C语言的作用域主要可以分为以下几种类型:块作用域(BlockScope):在代码块......
  • inline、block、inline-block这三个属性值有什么区别?
    在前端开发中,CSS的display属性用于决定元素如何在页面上呈现。inline、block和inline-block是这个属性的三个常见值,它们各自具有不同的特点和行为。以下是这三个属性值的详细区别:block(块级元素):块级元素会独占一行,即在其前后创建新的行。块级元素会尽可能宽,默认填满其父元素......
  • 你了解HTML5的download属性吗?
    是的,我了解HTML5的download属性。download属性是HTML5为<a>标签新增的一个属性,它主要用于指定当用户下载链接资源时,浏览器中的下载文件名称。这个属性通常与href属性一起使用,href属性指定了需要下载的文件的URL。download属性的值是一个字符串,表示下载文件的名称。如果在<a>标签......
  • box-sizing常用的属性有哪些?分别有什么作用?
    在前端开发中,box-sizing属性是一个用于定义元素盒模型计算方式的重要CSS属性。它主要决定了元素的宽度和高度如何计算,特别是与内边距(padding)和边框(border)的关系。box-sizing常用的属性有两个:content-box和border-box。content-box:这是box-sizing的默认值。在这种模式下,元素......
  • HTML5中新添加的表单属性有哪些?
    HTML5引入了许多新的表单属性,这些属性增强了表单的交互性和可用性。以下是一些主要的HTML5新表单属性:placeholder:这是一个用于在输入字段中显示提示信息的属性。当输入字段为空时,会显示该提示信息,一旦用户开始输入,提示信息就会消失。例如:<inputtype="text"name="username"p......
  • 你知道全屏滚动的原理是什么吗?它用到了CSS的哪些属性?
    全屏滚动的原理主要依赖于JavaScript的事件监听和CSS的布局属性。以下是其原理和所用到的关键CSS属性的详细解释:全屏滚动的原理监听滚动事件:通过JavaScript监听用户的滚动事件,如鼠标滚轮滚动或触摸滑动。控制滚动位置:根据用户的滚动行为(向上或向下),使用JavaScript控制页面平滑......
  • HTML学习笔记记录---速预CSS(2) 复合属性、盒子模型、边框线、浮动、定位
    复合属性写法:{font:font-stylefont-weitghtfont-size/line-heightfont-family}{font:样式粗细字号字体}(书写瞬间为固定的不可更改)block         块级元素      divinline         行内元素      spaninline-block ......
  • HTML属性
    属性是提供有关元素的附加信息的修饰符。属性可以是可选的,也可以是必需的。image标签需要一个属性才能正常工作。<img src="http://www.img.png"> 对于容器标记,属性总是放在开始标记中。锚标记是另一个需要属性才能正常工作的HTML元素的例子。<a href ="https://z.com">......
  • Python在生成式AI驱动的电影特效中的作用
    文章目录引言一、生成式AI在电影特效中的应用1.1生成式AI简介1.2生成式AI在电影特效中的角色二、Python的优势及其在生成式AI中的应用2.1Python的生态系统2.2Python在生成式AI中的应用三、虚拟角色生成3.1虚拟角色生成的挑战3.2利用GAN生成虚拟角色四、场景重建......