Maven 入门实战(2)--POM

发布时间 2023-07-02 11:37:30作者: 且行且码

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,它是一个 XML 文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。执行任务或目标时,Maven 会在当前目录中查找并读取 POM,获取所需的配置信息,然后执行目标。

1、基本配置

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mycompany</groupId>
    <artifactId>myproject</artifactId>
    <version>1.0.0</version>
    <description>项目描述</description>
    <name>项目名称</name>
    <url>https://www.mycompany.com/myproject</url>
    <packaging>jar</packaging>
    <inceptionYear>2023</inceptionYear>
</project>

 配置说明:

节点 说明
project 工程的根标签
modelVersion 模型版本,设置为:4.0.0;必需
groupId 工程组标识,它在一个组织或者项目中通常是唯一的;必需
artifactId 工程标识,它通常是工程的名称;必需
version 工程版本号;必需
description 工程描述
name 工程名称
url 工程主页
packaging 打包类型,常见类型为:pom、jar、war、ear;默认为:jar
inceptionYear 项目创建年份,4 位数字;版权信息生成时需使用这个配置

2、parent

所有的 POM 都继承自一个父 POM(无论是否显式定义了这个父 POM),父 POM 包含了一些可以被继承的默认设置。

<parent>
    <groupId>com.mycompany</groupId>
    <artifactId>parent-project</artifactId>
    <version>1.0</version>
    <relativePath/>
</parent>

配置说明:

节点 说明
groupId 父工程组标识;必需
artifactId 父工程标识;必需
version 父工程版本号;必需
relativePath 父工程 pom.xml 文件的相对路径;默认值为:../pom.xml。Maven 首先在当前工程的目录寻找父工程的 pom,其次在 relativePath,然后在本地仓库,最后在远程仓库寻找父项目的 pom

3、prerequisites

prerequisites 元素用于描述构建该项目的先决条件。

<prerequisites>
    <maven>3.8.0</maven>
</prerequisites>

配置说明:

节点 说明
maven 构建项目或使用该插件所需要的 Maven 最低版本

4、issueManagement

issueManagement 元素用于描述项目的问题管理系统。

<issueManagement>
    <system>jira</system>
    <url>http://10.39.196.10:8080/banseon</url>
</issueManagement>

配置说明:

节点 说明
system 问题系统名称
url 问题系统 URL

5、ciManagement

ciManagement 元素用于描述项目的持续集成系统。

<ciManagement>
    <system></system>
    <url></url>
    <notifiers>
        <notifier>
            <type></type>
            <sendOnError>true</sendOnError>
            <sendOnFailure>true</sendOnFailure>
            <sendOnSuccess>true</sendOnSuccess>
            <sendOnWarning>true</sendOnWarning>
            <address></address>
            <configuration/>
        </notifier>
    </notifiers>
</ciManagement>

配置说明:

节点 说明
system 集成系统名称
url 集成系统 URL
notifiers 构建完成时,需通知的人员列表,包括被通知者信息和通知条件
notifiers/notifier 一个被通知人员配置信息
notifiers/notifier/type 使用何种方法通知
notifiers/notifier/sendOnError 发生错误时是否通知
notifiers/notifier/sendOnFailure 构建失败时是否通知
notifiers/notifier/sendOnSuccess 构建成功时是否通知
notifiers/notifier/sendOnWarning 发生警告时是否通知
notifiers/notifier/address 通知发送到哪里,该配置已过期
notifiers/notifier/configuration 扩展配置项

6、mailingLists

mailingLists 元素用于描述项目相关的邮件信息。

<mailingLists>
    <mailingList>
        <name>jack</name>
        <post>123456@qq.com</post>
        <subscribe>123456@qq.com</subscribe>
        <unsubscribe>123456@qq.com</unsubscribe>
        <archive></archive>
    </mailingList>
</mailingLists>

配置说明:

节点 说明
mailingList 一个邮件信息
mailingList/name 邮件名称
mailingList/post 用于接受外部信息的邮件地址或链接;如果是邮件地址,那么在创建文档时将自动创建一个 mailto 链接。
mailingList/subscribe 用于订阅的邮件地址或链接;如果是邮件地址,那么在创建文档时将自动创建一个 mailto 链接。
mailingList/unsubscribe 用于取消订阅的邮件地址或链接;如果是邮件地址,那么在创建文档时将自动创建一个 mailto 链接。
mailingList/archive 可以浏览邮件信息的 URL

7、licenses

licenses 元素用于列出该项目的 license 列表。

<licenses>
    <license>
        <name>The Apache Software License, Version 2.0</name>
        <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
        <distribution>repo</distribution>
        <comments></comments>
    </license>
</licenses>

配置说明:

节点 说明
license 表示一个 license
name license 的名称
url license 页面 URL
distribution 项目的分发方式:repo,可以从 Maven 仓库下载;manual 用户须手动下载和安装依赖
comments license 的补充信息

8、developers

developers 用于列出项目开发者。

<developers>
    <developer>
        <id>123</id>
        <name>abc</name>
        <email>123456789@qq.com</email>
        <url>https://www.abc.com</url>
        <roles>
            <role>Project Manager</role>
        </roles>
        <organization>xyz</organization>
        <organizationUrl>https://www.xyz.com</organizationUrl>
        <properties>
            <dept>aa</dept>
        </properties>
        <timezone>8</timezone>
    </developer>
</developers>

配置说明:

节点 说明
developer 表示一个开发者
id 项目开发者的 id
name 项目开发者的姓名
email 项目开发者的 email
url 项目开发者的个人主页
roles、role 项目开发者在项目中扮演的角色
organization 项目开发者所属组织
organizationUrl 项目开发者所属组织的 URL
properties 项目开发者属性
timezone 项目开发者所在时区,-11 到 12 范围内的整数

9、contributors

contributors 元素描述尚未成为提交者的项目贡献者。

<contributors>
    <contributor>
        <name>abc</name>
        <email>123456789@qq.com</email>
        <url>https://www.abc.com</url>
        <roles>
            <role>Project Tester</role>
        </roles>
        <organization>xyz</organization>
        <organizationUrl>https://www.xyz.com</organizationUrl>
        <properties>
            <dept>aa</dept>
        </properties>
        <timezone>8</timezone>
    </contributor>
</contributors>

配置说明:

节点 说明
contributor 表示一个贡献者
name 贡献者的姓名
email 贡献者的 email
url 贡献者的个人主页
roles、role 贡献者在项目中扮演的角色
organization 贡献者所属组织
organizationUrl 贡献者所属组织的 URL
properties 贡献者属性
timezone 贡献者所在时区,-11 到 12 范围内的整数

10、scm

SCM(Source Control Management)元素用于配置项目的代码库。

<scm>
    <url>https://github.com/abc/abc-common</url>
    <connection>https://github.com/abc/abc-common.git</connection>
    <developerConnection>https://github.com/abc/abc-common-dev.git</developerConnection>
    <tag></tag>
</scm>

配置说明:

节点 说明
url 可浏览代码库的 URL
connection 可以连接到代码库的 URL,该连接只读
developerConnection 开发者连接到代码库的 URL,该连接可写
tag 当前代码的标签,在开发阶段默认为 HEAD

11、organization

organization 元素用于描述项目所属组织。

节点 说明
name 组织的全名
url 组织的主页 URL

12、properties

properties 用于定义键值对。

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <spring.version>5.2.24.RELEASE</spring.version>
</properties>

13、dependencies

dependencies 用于定义项目的依赖。

<dependencies>
    <dependency>
        <groupId>com.abc</groupId>
        <artifactId>commons</artifactId>
        <version>1.0.0</version>
        <type>jar</type>
        <classifier></classifier>
        <scope>compile</scope>
        <!--systemPath></systemPath-->
        <exclusions>
            <exclusion>
                <groupId>com.xyz</groupId>
                <artifactId>xxx</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <optional>true</optional>
</dependencies>

配置说明:

节点 说明
dependency 表示一个依赖
groupId 依赖工程组标识
artifactId 依赖工程标识
version 依赖工程版本
type 依赖类型,默认为 jar;它通常表示依赖文件的扩展名
classifier 依赖的分类器,它可以区分属于同一个 POM,但不同构建方式生成的构件。分类器名被附加到文件名的版本号后面。
scope 依赖范围,可以为:compile、test、runtime、provided、system;默认为:compile
systemPath 仅供 system 范围使用。该元素为依赖指定了文件系统上的路径,需要绝对路径而不是相对路径。
exclusions 排除该依赖工程不需要的依赖
exclusion 表示一个排除的依赖。groupId:排除的依赖工程组标识;artifactId:排除的依赖工程标识,可以用 * 表示任意个字符
optional 可选依赖,它阻断依赖的传递性。对于该依赖的依赖将不会被引入。

14、dependencyManagement

dependencyManagement 元素用于对依赖进行管理;这部分的依赖信息不会被立即解析,而是当在 dependencies 中声明一个依赖(groupId 和 artifactId 必须),如果 groupId 和 artifactId 以外的一些信息没有描述,则通过 groupId 和 artifactId 匹配到这里的依赖,并使用这里的依赖信息。

<dependencyManagement>
    <dependencies>
        <dependency>
            ...
        </dependency>
    </dependencies>
</dependencyManagement>

15、modules

<modules>
    <module>module-a</module>
    <module>module-b</module>
    <module>module-c</module>
</modules>

modules 元素用于列出项目的模块(子项目)。

配置说明:

节点 说明
module 一个模块,元素值为指向该模块的相对路径

16、reporting

reporting 元素用于生成报表,当执行"mvn site",报表就会按照配置生成。

<reporting>
    <excludeDefaults>false</excludeDefaults>
    <outputDirectory>${project.build.directory}/site</outputDirectory>
    <plugins>
        <plugin>
            <groupId>com.abc</groupId>
            <artifactId>xyz</artifactId>
            <version>1.0.0</version>
            <inherited>true</inherited>
            <configuration></configuration>
            <reportSets>
                <reportSet>
                    <id>123</id>
                    <configuration/>
                    <inherited>true</inherited>
                    <reports>
                        <report></report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
    </plugins>
</reporting>

配置说明:

节点 说明
excludeDefaults 是否排除默认报表,默认:false
outputDirectory 报表生成目录,默认:${project.build.directory}/site
plugins 报表插件列表
plugins/plugin 一个报表插件
plugins/plugin/groupId 插件 groupId
plugins/plugin/artifactId 插件 artifactId
plugins/plugin/version 插件版本
plugins/plugin/inherited 配置是否传播到子 POM
plugins/plugin/configuration 插件配置
plugins/plugin/reportSets 报表规范列表,每个规范(可能)具有不同的配置,一个规范(报表集)对应一个执行目标
plugins/plugin/reportSets/reportSet 一个报表规范
plugins/plugin/reportSets/reportSet/id 报表规范唯一标识符
plugins/plugin/reportSets/reportSet/configuration 报表规范配置
plugins/plugin/reportSets/reportSet/inherited 配置是否传播到子 POM
plugins/plugin/reportSets/reportSet/reports 该规范使用到的报表列表
plugins/plugin/reportSets/reportSet/reports/report 一个报表

17、build

build 元素用于描述项目如何构建。

<build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <scriptSourceDirectory></scriptSourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    <outputDirectory>target/classes</outputDirectory>
    <testOutputDirectory>target/test-classes</testOutputDirectory>
    <directory>target</directory>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <defaultGoal>clean package</defaultGoal>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>*.xml</include>
            </includes>
            <excludes>
                <exclude>*.abc</exclude>
            </excludes>
            <targetPath></targetPath>
            <filtering>false</filtering>
        </resource>
    </resources>
    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
            <includes>
                <include>*.xml</include>
            </includes>
            <excludes>
                <exclude>*.abc</exclude>
            </excludes>
            <targetPath></targetPath>
            <filtering>false</filtering>
        </testResource>
    </testResources>
    <filters>
        <filter></filter>
    </filters>
    <extensions>
        <extension>
            <groupId>com.abc</groupId>
            <artifactId>my-extension</artifactId>
            <version>1.0.0</version>
        </extension>
    </extensions>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.2.1</version>
            <extensions>false</extensions>
            <executions>
                <execution>
                    <id>attach-source</id>
                    <phase></phase>
                    <goals>
                        <goal>jar-no-fork</goal>
                    </goals>
                    <inherited>true</inherited>
                    <configuration></configuration>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                </dependency>
            </dependencies>
            <inherited>true</inherited>
            <configuration></configuration>
        </plugin>
    </plugins>
    <pluginManagement>
        <plugins>

        </plugins>
    </pluginManagement>
</build>

配置说明:

节点 说明
sourceDirectory 源码目录,该路径是相对于 pom.xml 的相对路径。
scriptSourceDirectory 脚本源码目录,该目录下的内容会被拷贝到输出目录;该路径是相对于 pom.xml 的相对路径。
testSourceDirectory 测试源码目录,该路径是相对于 pom.xml 的相对路径。
outputDirectory 编译输出目录,该路径是相对于 pom.xml 的相对路径。
testOutputDirectory 测试代码编译输出目录,该路径是相对于 pom.xml 的相对路径。
directory 构建产生的所有文件存放目录,该路径是相对于 pom.xml 的相对路径。
finalName 生成构件的文件名,默认值是 ${artifactId}-${version}
defaultGoal 默认的目标,配置该选项,可以运行简化的命令:mvn 来构建项目。
resources 资源信息,如:项目相关的配置文件
resources/resource 一个资源信息配置
resources/resource/directory 资源目录
resources/resource/directory/includes 包含的文件列表
resources/resource/directory/includes/include 一个包含文件的配置,如:**/*.xml
resources/resource/directory/excludes 排除的文件列表
resources/resource/directory/excludes/exclude 一个排除文件的配置,如:**/*.abc
resources/resource/targetPath 资源的目标目录,该路径是相对于 ${project.build.outputDirectory} 的相对路径
resources/resource/filtering 是否使用参数值代替参数名,参数值取自 properties 元素或者 filters 元素配置的文件里的属性;默认:false
testResources 资源信息,如:测试相关的配置文件
testResources/testResource 一个测试资源信息配置
testResources/testResource/directory 测试资源目录
testResources/testResource/directory/includes 包含的文件列表
testResources/testResource/directory/includes/include 一个包含文件的配置,如:**/*.xml
testResources/testResource/directory/excludes 排除的文件列表
testResources/testResource/directory/excludes/exclude 一个排除文件的配置,如:**/*.abc
testResources/testResource/targetPath 资源的目标目录,该路径是相对于 ${project.build.testOutputDirectory} 的相对路径
testResources/testResource/filtering 是否使用参数值代替参数名,参数值取自 properties 元素或者 filters 元素配置的文件里的属性;默认:false
filters 当 filtering 为 true 时,使用到的属性文件列表
filters/filter 一个属性文件
extensions 项目使用到的构建扩展
extensions/extension 一个构建扩展
extensions/extension/groupId 构建扩展 groupId
extensions/extension/artifactId 构建扩展 artifactId
extensions/extension/version 构建扩展版本
plugins 插件列表
plugins/plugin 一个插件
plugins/plugin/groupId 插件 groupId
plugins/plugin/artifactId 插件 artifactId
plugins/plugin/version 插件版本
plugins/plugin/extensions 是否从该插件加载 Maven 扩展(比如打包和类型处理程序),出于性能考虑,应该只在必要时启用该功能。默认:false
plugins/plugin/executions 执行的目标列表
plugins/plugin/executions/execution 一个执行目标
plugins/plugin/executions/execution/id 执行目标的标识符
plugins/plugin/executions/execution/phase 绑定目标到构建生命周期阶段,如果省略,目标会被绑定到插件配置的默认阶段
plugins/plugin/executions/execution/goals 执行的目标列表
plugins/plugin/executions/execution/goals/goal 一个执行目标
plugins/plugin/dependencies 插件所需要的额外依赖,参考 dependencies 元素
plugins/plugin/executions/execution/inherited 配置是否传播到子 POM
plugins/plugin/executions/execution/configuration 插件的配置信息
pluginManagement 插件管理,这里的插件配置项直到被引用时才会被解析或绑定到生命周期。pluginManagement 和 plugins 的关系类似 dependencyManagement 和 dependencies 的关系。 
pluginManagement/plugins 插件列表,参考 plugins 元素

18、repositories

repositories 用于配置依赖和扩展的远程仓库。

<repositories>
    <repository>
        <id>snapshot-repository</id>
        <name>snapshots</name>
        <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
        <layout>default</layout>
        <releases>
            <enabled>false</enabled>
            <updatePolicy>daily</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
        </releases>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
        </snapshots>
    </repository>
</repositories>

配置说明:

节点 说明
repository 一个远程参考配置
repository/id 远程仓库唯一标识符,可以用来匹配在 settings.xml 文件里配置的远程仓库
repository/name  远程仓库名称
repository/url 远程仓库 URL
repository/layout 仓库布局类型,可以为:legacy(遗留)、default
repository/releases 如何处理远程仓库里发布版本的下载
repository/releases/enabled 是否从该仓库下载发布版本,默认:true
repository/releases/updatePolicy 下载更新的频率,可以为:always,daily(默认,每日),interval:X(单位为分钟),never
repository/releases/checksumPolicy 当 Maven 验证构件校验文件失败时如何处理:ignore,fail,warn
repository/snapshots 如何处理远程仓库里快照版本的下载
repository/snapshots/enabled 是否从该仓库下载快照版本,默认:true
repository/snapshots/updatePolicy 下载更新的频率,可以为:always,daily(默认,每日),interval:X(单位为分钟),never
repository/snapshots/checksumPolicy 当 Maven 验证构件校验文件失败时如何处理:ignore,fail,warn

19、pluginRepositories

pluginRepositories 用于配置插件的远程仓库。

<pluginRepositories>
    <pluginRepository>
    ...
    </pluginRepository>
</pluginRepositories>

pluginRepositories/pluginRepository 表示一个远程仓库配置,它的子元素与 repositories/repository 一致。

20、distributionManagement

distributionManagement 用于描述项目如何分发,执行 mvn deploy 后将把项目分发到对应的位置;通过该配置可以把网站部署到远程服务器或者把构件部署到远程仓库。

<distributionManagement>
    <repository>
        <id>ossrh</id>
        <name>ossrh</name>
        <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        <uniqueVersion>false</uniqueVersion>
        <layout>default</layout>
    </repository>
    <snapshotRepository>
        <id>ossrh</id>
        <name>ossrh</name>
        <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        <uniqueVersion>false</uniqueVersion>
        <layout>default</layout>
    </snapshotRepository>
    <site>
        <id></id>
        <name></name>
        <url></url>
    </site>
    <downloadUrl></downloadUrl>
    <relocation>
        <groupId></groupId>
        <artifactId></artifactId>
        <version></version>
        <message></message>
    </relocation>
    <status></status>
</distributionManagement>

配置说明:

节点 说明
repository 项目发布版本部署的远程仓库
repository/id 远程仓库唯一标识,可以用来匹配在 settings.xml 文件里配置的远程仓库
repository/name 远程仓库名称
repository/url 远程仓库 URL
repository/layout 仓库布局类型,可以为:legacy(遗留)、default
snapshotRepository 项目快照版本部署的远程仓库
snapshotRepository/id 远程仓库唯一标识,可以用来匹配在 settings.xml 文件里配置的远程仓库
snapshotRepository/name 远程仓库名称
snapshotRepository/url 远程仓库 URL
snapshotRepository/layout 仓库布局类型,可以为:legacy(遗留)、default
site 项目部署的站点
site/id 站点唯一标识,可以用来匹配在 settings.xml 文件里配置的站点
site/name 站点名称
site/url 站点 URL
downloadUrl 项目下载页面的 URL,如果没有该元素,用户应该参考主页。使用该元素的原因是:帮助定位那些不在仓库里的构件(由于license限制)
relocation 如果项目有了新的 groupId 和 artifactId(项目移到了新的位置),这里列出项目新的信息
relocation/groupId 项目新 groupId
relocation/artifactId 项目新 artifactId
relocation/version 项目新版本
relocation/message 向用户显示有关项目移动的附加消息,例如原因
status 给出该工件在远程存储库中的状态。不能在本地项目中设置,它是由远程仓库的工具更新的。有效值为:none(默认值)、converted(仓库管理器从Maven 1 POM转换)、partner(直接从Maven 2仓库同步)、deployed(从Maven 2实例部署)、verified(已手工验证为正确的和最终的)。

21、profiles

profiles 元素用于描述项目构建配置,如果被激活,将会修改构建处理。

<profiles>
    <profile>
        <id>abc</id>
        <activation>
            <activeByDefault>false</activeByDefault>
            <jdk>[1.8,)</jdk>
            <os>
                <name>Win10</name>
                <family>Windows</family>
                <arch>x86</arch>
                <version>22H2</version>
            </os>
            <property>
                <name>mavenVersion</name>
                <value>3.8.1</value>
            </property>
            <file>
                <exists>/home/mongo/a.txt</exists>
                <missing>/home/mongo/b.txt</missing>
            </file>
        </activation>
        <build>

        </build>
        <modules>

        </modules>
        <repositories>

        </repositories>
        <pluginRepositories>

        </pluginRepositories>
        <dependencies>

        </dependencies>
        <dependencyManagement>

        </dependencyManagement>
        <distributionManagement>

        </distributionManagement>
        <properties/>
        <reports/>
        <reporting>
            
        </reporting>
    </profile>
</profiles>

配置说明:

节点 说明
profile 一个构建配置
profile/id 构建配置唯一标识,用于命令行激活,也用于在继承时合并具有相同标识符的 profile
profile/activation 触发此构建配置的条件逻辑。
profile/activation/activeByDefault 默认是否激活
profile/activation/jdk 当检测到匹配的 JDK 时将激活此构建配置
profile/activation/os 当检测到匹配的操作系统时将激活此构建配置
profile/activation/os/name 用于激活构建配置的操作系统名称,必须与 Java 属性 ${os.name} 精确匹配
profile/activation/os/family 用于激活构建配置的通用操作系统系列
profile/activation/os/arch 用于激活构建配置的操作系统体系结构
profile/activation/os/version 用于激活构建配置的操作系统版本
profile/activation/property 用于激活构建配置的 Maven 系统属性,如果存在对应属性和值将会激活该构建配置
profile/activation/property/name 属性名称
profile/activation/property/value 属性值,如果为空,那将不判断属性的值,只要属性存在就会激活该构建配置
profile/activation/file 通过文件是否存在来激活构建配置
profile/activation/file/exists 如果该文件存在,则激活构建配置
profile/activation/file/missing 如果该文件不存在,则激活构建配置
profile/build 项目构建所需信息,参考 build 元素
profile/modules 项目模块信息,参考 modules 元素
profile/repositories 依赖和扩展的远程仓库,参考 repositories 元素
profile/pluginRepositories 插件的远程仓库,参考 pluginRepositories 元素
profile/dependencies 项目的依赖信息,参考 dependencies 元素
profile/dependencyManagement 通过该配置来管理依赖,参考 dependencyManagement 元素
profile/distributionManagement 项目分发信息,参考 distributionManagement 元素
profile/properties 项目属性信息,参考 properties 元素
profile/reports 已过期
profile/reporting 根据该配置生成报表,参考 reporting 元素

 

 

参考:https://www.runoob.com/maven/maven-pom.html