首页 > 其他分享 >pom.xml文件中各个标签的含义

pom.xml文件中各个标签的含义

时间:2024-10-15 09:32:55浏览次数:6  
标签:xml ... plugin 标签 默认 maven pom 文件

原文链接:pom文件中各个标签的含义 – 每天进步一点点 (longkui.site)

搭建springboot中有一个默认的pom文件,看到它里面的标签,有些不太熟悉,于是学习了下把找到的结果都记录下来。

1.parent

    <parent>
        <!--这是Spring Boot的父级依赖,这样当前的项目就是Spring Boot项目了。
            spring-boot-starter-parent 是一个特殊的starter,它用来提供相关的Maven默认依赖。
            使用它之后,常用的包依赖可以省去version标签。-->
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <!--springboot的版本号 -->
        <version>2.7.7-SNAPSHOT</version>
        <!--查找顺序:relativePath元素中的地址–本地仓库–远程仓库,
            设定一个空值将始终从仓库中获取,不从本地路径获取-->
        <relativePath/>
    </parent>

2.modelVersion

 <!-- 指定当前POM版本,对于maven2,3来说,只能4.0.0  -->
    <modelVersion>4.0.0</modelVersion>
    <!-- 一般分为多个部分,类似于 xxx.xxx.xxx。第一部分为域,比如com、org、cn等,第二部分是公司名   -->
    <groupId>site.longkui</groupId>
    <!--    构件的唯一标识符号,-->
    <artifactId>app</artifactId>
    <!--    版本号-->
    <version>0.0.1-SNAPSHOT</version>
    <!--    这个可以理解为项目的名称,maven文档用-->
    <name>app</name>
    <!--  项目主页的URL, Maven产生的文档用  -->
    <url>http://www.baidu.com/banseon</url>
    <!--  项目的详细描述, Maven 产生的文档用   -->
    <description>Demo project for Spring Boot</description>

3.prerequisites


 <prerequisites>    
  <!--构建该项目或使用该插件所需要的Maven的最低版本-->    
    <maven/>    
 </prerequisites>    

4.properties

  <properties>
        <java.version>1.8</java.version>
    </properties>

通过<properties>元素用户可以自定义一个或多个Maven属性,然后在POM的其他地方使用 ${属性名}的方式来引用该属性。比如下面这样:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <mysql.version>8.0.21</mysql.version>
  </properties>
  <dependencies>
 	 <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
      </dependency>
  </dependencies>

5.issueManagement

一般不写

<!--项目的问题管理系统(Bugzilla, Jira, Scarab,或任何你喜欢的问题管理系统)的名称和URL,本例为 jira-->     
    <issueManagement>    
     <!--问题管理系统(例如jira)的名字,-->     
        <system>jira</system>     
        <!--该项目使用的问题管理系统的URL-->    
        <url>http://jira.baidu.com/banseon</url>     
    </issueManagement>    

6.developers

一般不写


    <!--项目开发者列表-->     
    <developers>     
     <!--某个项目开发者的信息-->    
        <developer>     
         <!--SCM里项目开发者的唯一标识符-->    
            <id>HELLO WORLD</id>     
            <!--项目开发者的全名-->    
            <name>banseon</name>     
            <!--项目开发者的email-->    
            <email>[email protected]</email>     
            <!--项目开发者的主页的URL-->    
            <url/>    
            <!--项目开发者在项目中扮演的角色,角色元素描述了各种角色-->    
            <roles>     
                <role>Project Manager</role>     
                <role>Architect</role>     
            </roles>    
            <!--项目开发者所属组织-->    
            <organization>demo</organization>     
            <!--项目开发者所属组织的URL-->    
            <organizationUrl>http://hi.baidu.com/banseon</organizationUrl>     
            <!--项目开发者属性,如即时消息如何处理等-->    
            <properties>     
                <dept>No</dept>     
            </properties>    
            <!--项目开发者所在时区, -11到12范围内的整数。-->    
            <timezone>-5</timezone>     
        </developer>     
    </developers>   

7.dependencies

   <!--该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。-->     
    <dependencies>     
        <dependency>    
   <!--依赖的group ID-->    
            <groupId>org.apache.maven</groupId>     
            <!--依赖的artifact ID-->    
            <artifactId>maven-artifact</artifactId>     
            <!--依赖的版本号。 在Maven 2里, 也可以配置成版本号的范围。-->    
            <version>3.8.1</version>     
            <!-- 依赖类型,默认类型是jar。它通常表示依赖的文件的扩展名,但也有例外。一个类型可以被映射成另外一个扩展名或分类器。类型经常和使用的打包方式对应, 尽管这也有例外。一些类型的例子:jar,war,ejb-client和test-jar。如果设置extensions为 true,就可以在 plugin里定义新的类型。所以前面的类型的例子不完整。-->    
            <type>jar</type>    
            <!-- 依赖的分类器。分类器可以区分属于同一个POM,但不同构建方式的构件。分类器名被附加到文件名的版本号后面。例如,如果你想要构建两个单独的构件成 JAR,一个使用Java 1.4编译器,另一个使用Java 6编译器,你就可以使用分类器来生成两个单独的JAR构件。-->    
            <classifier></classifier>    
            <!--依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来。欲知详情请参考依赖机制。    
                - compile :默认范围,用于编译      
                - provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath      
                - runtime: 在执行时需要使用      
                - test:    用于test任务时使用      
                - system: 需要外在提供相应的元素。通过systemPath来取得      
                - systemPath: 仅用于范围为system。提供相应的路径      
                - optional:   当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用-->     
            <scope>test</scope>       
            <!--仅供system范围使用。注意,不鼓励使用这个元素,并且在新的版本中该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径而不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。-->    
            <systemPath></systemPath>     
            <!--当计算传递依赖时, 从依赖构件列表里,列出被排除的依赖构件集。即告诉maven你只依赖指定的项目,不依赖项目的依赖。此元素主要用于解决版本冲突问题-->    
            <exclusions>    
             <exclusion>     
                    <artifactId>spring-core</artifactId>     
                    <groupId>org.springframework</groupId>     
                </exclusion>     
            </exclusions>       
            <!--可选依赖,如果你在项目B中把C依赖声明为可选,你就需要在依赖于B的项目(例如项目A)中显式的引用对C的依赖。可选依赖阻断依赖的传递性。-->     
            <optional>true</optional>    
        </dependency>    
    </dependencies>  

8.build

build相关的配置一般有两种,一是全局配置(project build),第二是 (profile build)

8.1针对不同的profile配置

<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/maven-v4_0_0.xsd">  
  …  
  <!– "Project Build" contains more elements than just the BaseBuild set –>  
  <build>…</build>  
  <profiles>  
    <profile>  
      <!– "Profile Build" contains a subset of "Project Build"s elements –>  
      <build>…</build>  
    </profile>  
  </profiles>  
</project> 

8.2基本使用说明

8.2.1基本元素

<build>  
        <defaultGoal>install</defaultGoal>  
        <directory>${basedir}/target</directory>  
        <finalName>${artifactId}-${version}</finalName>  
        <filters>  
                <filter>filters/filter1.properties</filter>  
        </filters>  
         ...  
</build>  

1)defaultGoal
执行build任务时,如果没有指定目标,将使用的默认值。
如上配置:在命令行中执行mvn,则相当于执行mvn install
2)directory
build目标文件的存放目录,默认在目录)目标文件的名称,默认情况为

标签:xml,...,plugin,标签,默认,maven,pom,文件
From: https://www.cnblogs.com/longkui-site/p/18466778

相关文章

  • Mapper 映射文件常用标签
    1.<mapper>作用:定义映射文件的根元素。包含所有的SQL语句和映射配置。属性:namespace:用于指定当前映射文件对应的接口类的全限定名,起到命名空间的作用。<mappernamespace="com.example.mapper.UserMapper"><!--SQL语句和映射关系--></mapper>2.<select......
  • Mybatis的Mapper映射文件中常用标签
    "mapper":是整个映射文件的根元素,包含了所有的其他标签,有一个重要的属性:namespace,用来指定映射文件对应的接口的全限定名,保证多个映射文件中使用相同的ID不会产生冲突,因为每个ID都是基于其命名空间唯一的点击查看代码<mappernamespace="com.example.mapper.Use......
  • Mybatis的Mapper映射文件中常用标签及作用
    MyBatis的Mapper映射文件是一种XML格式的配置文件,它用于定义SQL语句和Java对象之间的映射关系。以下是一些常用的标签及其作用。!DOCTYPEmapperPUBLIC#定义文档类型和公共标识符,用于XML文档的开头。<mapper>#根标签,定义一个映射文件。<namespace>#定义映射文件的命......
  • Mybatis的Mapper映射文件中常用标签及作用
    1、<mapper>:根元素,表示一个Mapper接口的配置。2、<select>:用于编写sql查询语句。3、<insert>:用于编写sql插入数据的<details>4、<update>:用于编写sql更新数据的语句。5、<delete>:用于编写sql删除数据的语句。6、<resultMap>:定义了如何将数据库中的列与Java对象的属......
  • Mybatis的Mapper映射文件中常用标签
    select点击查看代码<selectid="selectPerson"parameterType="int"parameterMap="deprecated"resultType="hashmap"resultMap="personResultMap"flushCache="false"useCache="true"time......
  • Mybatis的Mapper映射文件中常用标签及作用
    MyBatis是一个广泛使用的持久层框架,能够将对象与数据库中的记录进行映射。在MyBatis的Mapper映射文件中,有许多常用标签,它们各自有不同的功能。以下是一些常见标签及其作用:1.select标签作用:用来定义查询操作。示例:点击查看代码<selectid="selectUser"resultType="Use......
  • Mybatis的Mapper映射文件中常用标签及作用
    mapper标签作用:根标签,用于定义一个Mapper文件。属性:namespace,指定Mapper接口的全限定名。select标签作用:定义一个查询语句。属性:id:语句的唯一标识符,对应Mapper接口中的方法名。parameterType:输入参数的类型。resultType:返回结果的类型。resultMap:返回结果......
  • Mybatis的Mapper映射文件中常用标签
    增删改查标签增:<insertid=""parameterType=""useGeneratedKeys="true"keyProperty="id">id接口名,parameterType传参类型,useGeneratedKeys是否使用数据库生成的主键,keyProperty将主键映射到哪个属性删:<deleteid=""></delete>改......
  • Mybatis的Mapper映射文件中常用标签以及作用
    1.SqlMapConfig标签SqlMapConfig标签是Mybatis配置文件中的根标签,它用于配置Mybatis的全局属性,包括数据库连接信息、类型别名、事务管理器等1.properties:用于指定外部属性文件的位置,可以用来配置数据库连接信息等敏感信息。2.settings:用于配置Mybatis的全局属性,包括......
  • Mybatis的Mapper映射文件中常用标签及作用
    1.<sql>标签定义重复使用的字段提高复用性点击查看代码<sqlid="Base_Column_List">id,name,contract_no,pdf_url,member_phone,elder_id,start_time,end_time,status,sort,level_desc,create_time,create_by,update_time,update_by,remark,......