pom文件详解

mac2024-04-22  7

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

最新回复(0)