Maven(一) pom 文件介绍及 parent、properties 标签详解

pom.xml 介绍

pom 作为项目对象模型。通过 xml 表示 maven 项目,使用 pom.xml 来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。

pom 中的描述信息都是用xml标签的方式,其中包含双标签和单标签,最顶部用于描述 xml 得版本和编码,其次是以 project 开头得双标签并表示为一个项目,定义了该项目可用内容及规范。

# 双标签


# 单标签

对于 pom 可用内容较多,一级标签有如下表所示,但常用的都会有对应的描述

标签 描述
                       modelVersion                        当前模型使用的版本
parent 继承某个pom,部分是不可继承的
groupId 公司或组织着唯一标识,如 org.springframework.boot 第一段是域(org、com 非盈利组织、商业组织),第二段是公司名称,第三段是应用名称
artifactId 项目的唯一ID
version 项目所属的版本号
name 项目名称
description 项目描述信息
properties 配置信息描述,更多的是描述依赖jar版本、项目版本等
dependencies 所要依赖的jar都需要在这里描述
build 构建信息,包括插件,资源文件信息等
profiles 作用于项目环境的切换(dev、test、produce)
packaging 描述项目的类型,可选pom、jar、war
repositories 用是用来配置maven项目的远程仓库,可以是私服(nexus)
modules 用来配置子项目
dependencyManagement 用来提供了一种管理依赖版本号的方式。通常会在项目的最顶层的父POM 中看到该元素。使用pom.xml 中的dependencyManagement 元素能让所有在子项目中引用一个依赖而不用显式的列出版本号
distributionManagement 用于分发构件到远程仓库;mvn install 会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库。本地Maven仓库的构件只能供当前用户使用,在分发到远程Maven仓库之后,所有能访问该仓库的用户都能使用你的构件。
pluginRepositories 配置Maven从什么地方下载插件
scm 集成了软件配置管理的,他可以支持我们常用SVN、CVS等
developers 配置开发者信息,例如:一个开发者可以有多个roles,properties
issueManagement bug跟踪管理系统,定义defect tracking system缺陷跟踪系统
reporting 包含site生成阶段的一些元素,某些maven plugin可以生成 reports 并且在 reporting 下配置
url 开发团队的网站,无关紧要可选
licenses 许可证信息配置
organization 配置组织信息
ciManagement ?
contributors ?
inceptionYear ?
mailingLists ?
prerequisites ?
reports ?

以一个 spring boot 常规项目做为示例:



    4.0.0
    
    
        org.springframework.boot
        spring-boot-starter-parent
        2.6.9
         
    
    
    com.xxx.boot
    
    framework
    
    0.0.1-SNAPSHOT
    
    newFramework
    Demo project for Spring Boot
    
    
        
        17
        
        17
        17
    
    
    
    
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    
    
    
        
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

parent 标签详解

标签用于继承父项目的各类依赖及其他配置信息,如版本,构建信息,配置描述等,具体范围包括:

# 可以继承部分
groupId、version、description、url、inceptionYear、organization、licenses、developers、contributors、mailingLists、scm、issueManagement、ciManagement、properties、dependencyManagement、dependencies、repositories、pluginRepositories、build、reporting、profiles

# 不可继承部分
artifactId、name、prerequisites

一个 parent 里所包含全部内容有:


    org.springframework.boot
    spring-boot-starter-parent
    2.6.9
    

元素,它可以单标签也可以是双标签../my-parent。它不是必需的,但可以用作 Maven 的指示符,然后先搜索该项目的父级的给定路径,然后再搜索本地和远程存储库,单标签为默认从当前pom.xml的父级目录查找。

properties 标签详解

没有提供什么实质性的内容供我们使用,检查下来在里面最多可以在描述一个标签可用,但作用并不是不大。实际作用更多在于描述我们依赖jar的版本等。


    
    17
    
    17
    17
    
    1.18.24
    0.0.1-SNAPSHOT


${project.version}


    
        org.projectlombok
        lombok
        ${lombok.version}
    

你可能感兴趣的:(Maven(一) pom 文件介绍及 parent、properties 标签详解)