Maven 入门实战(2)--POM
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>[email protected]</post> <subscribe>[email protected]</subscribe> <unsubscribe>[email protected]</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>[email protected]</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 | |
url | 项目开发者的个人主页 |
roles、role | 项目开发者在项目中扮演的角色 |
organization | 项目开发者所属组织 |
organizationUrl | 项目开发者所属组织的 URL |
properties | 项目开发者属性 |
timezone | 项目开发者所在时区,-11 到 12 范围内的整数 |
9、contributors
contributors 元素描述尚未成为提交者的项目贡献者。
<contributors> <contributor> <name>abc</name> <email>[email protected]</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 | |
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 元素 |