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>