parent标签
示例
<parent>
<artifactId>re-module</artifactId>
<groupId>com.zqq.module</groupId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
解析
<parent>表示所依赖的父pom文件的坐标
<artifactId>表示被继承的父项目的构件标识符
<groupId>表示被继承的父项目的全球唯一标识符
<version>表示被继承的父项目的版本
<relativePath>表示父项目的pom.xml文件的相对路径
pom文件的四大基本元素
示例
<modelVersion>4.0.0</modelVersion>
<groupId>com.zqq.module</groupId>
<artifactId>te_z_te_module</artifactId>
<version>1.0-SNAPSHOT</version>
解析
<modelVersion>表示声明项目描述符遵循哪一个POM模型版本
<groupId>表示项目的全球唯一标识符
<artifactId>表示构件的标识符,它和group ID一起唯一标识一个构件
<version>表示项目当前版本,格式为:主版本.次版本.增量版本-限定版本号
pom文件元素
示例
<packaging>pom</packaging>
<name>te_z_te_module</name>
<url>http://www.example.com</url>
解析
<packging>表示项目产生的构件类型,例如jar、war、ear、pom。插件可以创建他们自己的构件类型,所以前面列的不是全部构件类型
<name>表示项目的名称
<url>表示项目主页的URL
properties
示例
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<!--lombok-->
<lombok.version>1.16.20</lombok.version>
</properties>
解析
项目开发者属性,可以在其中设置依赖的版本号
dependency
示例
<dependencies>
<!--参见dependencies/dependency元素-->
<dependency>
......
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>${zookeeper.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
解析
dependencies表示项目引入插件所需要的额外依赖
<scope>表示依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来:
- compile :默认范围,用于编译
- provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath
- runtime: 在执行时需要使用
- test: 用于test任务时使用
- system: 需要外在提供相应的元素。通过systemPath来取得
- systemPath: 仅用于范围为system。提供相应的路径
- optional: 当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用
<exclusions>表示从依赖构件列表里,列出被排除的依赖构件集。即告诉maven你只依赖指定的项目,不依赖项目的某个依赖。此元素主要用于解决版本冲突问题。
dependencyManagement
示例
<dependencyManagement>
<dependencies>
<!-- lombok组件 生成getSet 等 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
解析
表示继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,而是当子项目声明一个依赖(必须描述group ID和 artifact ID信息),如果group ID和artifact ID以外的一些信息没有描述,则通过group ID和artifact ID 匹配到这里的依赖,并使用这里的依赖信息。
profiles
示例
<profiles>
<profile>
<id>dev</id>
<properties>
<!-- 环境标识,需要与配置文件的名称相对应 -->
<profileActive>dev</profileActive>
</properties>
<activation>
<!-- 默认环境 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profileActive>test</profileActive>
</properties>
</profile>
</profiles>
解析
<profile>根据环境参数或命令行参数激活某个构建处理
<id>构建配置的唯一标识符。即用于命令行激活,也用于在继承时合并具有相同标识符的profile;
<properties>以值替代名称,Properties可以在整个POM中使用
<activation>自动触发profile的条件逻辑。Activation是profile的开启钥匙.profile的力量来自于它能够在某些特定的环境中自动使用某些特定的值;这些环境通过activation元素指定。activation元素并不是激活profile的唯一方式。
<activeByDefault>profile默认激活的标志
modules
示例
<modules>
<module>re-module-parent</module>
<module>te-swa-server</module>
</modules>
解析
设置需要显示的模块,只在父pom文件中会出现modules
build
示例
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>application-${profileActive}.properties</include>
<include>application.properties</include>
<include>config/**/*.*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<!-- 部署系统时打包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<finalName>${project.artifactId}</finalName>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>install</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
解析
<build>构建项目需要的信息
<resources>这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里
<resource>这个元素描述了项目相关或测试相关的所有资源路径
<directory>指定资源路径
<includes>包含了项目所需要的资源的名字(将resource目录下的所有文件列出来)
<filtering>是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出
<configuration>扩展配置
<executions>在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置
参考地址: https://blog.csdn.net/qq_17085463/article/details/78820645