pom.xml 标签整理各个标签的用途和含义
Spring boot 项目 pom.xml 标签整理
- parent
<parent><!--这是Spring Boot的父级依赖。spring-boot-starter-parent 是一个特殊的starter,它用来提供相关的Maven默认依赖。 使用它之后,常用的包依赖可以省去version标签。同样也可以引用自己创建的父类的pom 文件--><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><!--springboot的版本号 --><version>2.7.7-SNAPSHOT</version><!--查找顺序:relativePath元素中的地址–本地仓库–远程仓库,设定一个空值将始终从仓库中获取,不从本地路径获取--><!-- 查找顺序优先从父类中获取相关元素 如 相同版本的jar 默认路径 当前目的上一层级目录寻找pom 文件 或者指定特定目录 ../pom.xml--><relativePath/> <!-- lookup parent from repository --></parent>
- 项目的基础标签
<!-- 指定当前POM 模型版本,对于 Maven 2 和 3,几乎总是 4.0.0--><modelVersion>4.0.0</modelVersion><!-- 是公司项目组唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构 --><groupId>com.cn.hlm</groupId><!-- 模块的唯一的标识符,--><artifactId>app</artifactId><!-- 当前版本号--><version>0.0.1-SNAPSHOT</version><!-- 项目的名称--><name>app</name><!-- 项目主页的URL,或者 开发团队官方地址 ,非必要 --><url>http://www.baidu.com/banseon</url><!-- 项目的详细描述 --><description>Demo project for Spring Boot</description><!-- 项目的打包方式 --><packaging>jar</packaging>
- properties 占位符 使用 ${key}
<!--充当占位符来使用 ${key} 使其版本统一 修改版本号 修改一处旧可以><properties><!-- 1. 自定义任意属性 --><my.property>value</my.property><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>11</java.version><!-- 2. 常用:统一管理依赖版本 --><spring-boot.version>2.7.0</spring-boot.version><junit.version>5.8.2</junit.version><!-- 3. 自定义路径或其他配置 --><resources.dir>src/main/resources</resources.dir></properties>
- dependencies 声明项目所依赖的所有外部库jar
<dependencies><!-- 声明一个依赖 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><!-- 声明另一个依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.7.0</version></dependency></dependencies>
- dependency 中的 exclusions 元素
<!-- 发现jar包冲突,于是使用exclusion排除jar包--><!-- 在引用的jar 包中去除冲突的包 在下面单独引用 来解决 jar 冲突<dependency><groupId>xx</groupId><artifactId>xxx</artifactId><version>2.0</version><exclusions><exclusion><groupId>xxx</groupId><artifactId>xxx</artifactId></exclusion></exclusions></dependency>
- packagingExcludes 移除 war包中引用或者排除特定文件
<!-- 移除 war/jar包中引用或者排除特定文件 可以单个移除可以,使用通配符--><build><plugins><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.3</version><configuration><packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes></configuration></plugin></plugins></build>
看连接 maven 管理
6. project build 基础配置 (Basic Configuration) 元素
<!--当你在命令行中只输入 mvn 而没有指定任何目标(goal)或阶段(phase)时,Maven 默认执行的构建目标--><defaultGoal>clean install</defaultGoal><!—指定构建输出目录的根路径。默认为 ${basedir}/target。所有编译的类文件、打包的 JAR/WAR 等都会放在这个目录下—><directory>${project.basedir}/build</directory><!—指定最终生成的主构件(Primary Artifact)的文件名(不包含扩展名)。扩展名由 <packaging> 类型决定,默认值:${artifactId}-${version}—><finalName>${project.artifactId}</finalName>
- prerequisites
<!--描述了这个项目构建环境中的前提条件。--><prerequisites><!--构建该项目或使用该插件所需要的Maven的最低版本--><maven>3.0.5</maven></prerequisites><!-- 现在已经弃用了 通过 maven-enforcer-plugin 来实现 参考build 元素--><!-- 弃用原因 父类使用该标签 子类不会被强制性继承和检验-->