Maven Pom

Posted 逗比青年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven Pom相关的知识,希望对你有一定的参考价值。

编写Pom

<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>
    <!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyName.projectName,maven会将该项目打成的jar包放本地路径:/com/companyName/projectName -->
    <groupId>com.companyName.projectName</groupId>
 
    <!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
    <artifactId>project-module</artifactId>
 
    <!-- 版本号 -->
    <version>1.0</version>
        
    <!-- 省略... -->
</project>

添加依赖

<dependencies></dependencies>

例如添加lombok依赖简化开发

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

聚合

<project>  
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.companyName.projectName</groupId>
    <artifactId>projectName</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <!-- 项目打包类型,父模块必须为pom,默认为jar -->
    <packaging>pom</packaging>

    ...
    
    <!--模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径-->
    <modules>  
        <module>projectName-mbg</module>  
        <module>projectName-admin</module>
        <module>projectName-web</module>  
    </modules>
</project>  

继承

<parent></parent>

这里需要特别提一下dependencies和dependencyManagement的区别:

  • dependencies即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承)。
  • dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。
    <parent>  
        <groupId>com.companyName.projectName</groupId>  
        <artifactId>project</artifactId>  
        <version>1.0.0-SNAPSHOT</version>
    </parent>

Pom属性

<project>
   ...
   <properties>
       <elasticsearch.version>7.2</elasticsearch.version>
   </properties>
   <dependencies>
   	<dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>${elasticsearch.version}</version>
    </dependency>   
   </dependencies>
</project>

以上是关于Maven Pom的主要内容,如果未能解决你的问题,请参考以下文章

Maven-POM

maven项目报错 pom

maven-shade-plugin插件未生效原因分析

从代码中的 maven pom.xml 检索版本

maven pom.xml解释 (转)

maven pom 知识整理(粉丝福利篇)