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 管理
- 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 元素--> <!-- 弃用原因 父类使用该标签 子类不会被强制性继承和检验-->