pom.xml 标签整理各个标签的用途和含义

Spring boot 项目 pom.xml 标签整理

  1. 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>
  1. 项目的基础标签
复制代码
 	 <!-- 指定当前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>
  1. 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>
  1. 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>
  1. 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>
  1. 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 管理

  1. 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>
  1. prerequisites
复制代码
 	<!--描述了这个项目构建环境中的前提条件。-->
 <prerequisites>
 	<!--构建该项目或使用该插件所需要的Maven的最低版本-->
 	<maven>3.0.5</maven>
 </prerequisites>
 	<!-- 现在已经弃用了 通过 maven-enforcer-plugin 来实现 参考build 元素-->
 	<!-- 弃用原因 父类使用该标签 子类不会被强制性继承和检验-->