这是对Maven中使用的Maven项目描述符的引用。
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"
child.project.url.inherit.append.path=.. >
<modelVersion/>
<parent>
<groupId/>
<artifactId/>
<version/>
<relativePath/>
</parent>
<groupId/>
<artifactId/>
<version/>
<packaging/>
<name/>
<description/>
<url/>
<inceptionYear/>
<organization>
<name/>
<url/>
</organization>
<licenses>
<license>
<name/>
<url/>
<distribution/>
<comments/>
</license>
</licenses>
<developers>
<developer>
<id/>
<name/>
<email/>
<url/>
<organization/>
<organizationUrl/>
<roles/>
<timezone/>
<properties>
<key>value</key>
</properties>
</developer>
</developers>
<contributors>
<contributor>
<name/>
<email/>
<url/>
<organization/>
<organizationUrl/>
<roles/>
<timezone/>
<properties>
<key>value</key>
</properties>
</contributor>
</contributors>
<mailingLists>
<mailingList>
<name/>
<subscribe/>
<unsubscribe/>
<post/>
<archive/>
<otherArchives/>
</mailingList>
</mailingLists>
<prerequisites>
<maven/>
</prerequisites>
<modules/>
<scm child.scm.connection.inherit.append.path=.. child.scm.developerConnection.inherit.append.path=.. child.scm.url.inherit.append.path=.. >
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<issueManagement>
<system/>
<url/>
</issueManagement>
<ciManagement>
<system/>
<url/>
<notifiers>
<notifier>
<type/>
<sendOnError/>
<sendOnFailure/>
<sendOnSuccess/>
<sendOnWarning/>
<address/>
<configuration>
<key>value</key>
</configuration>
</notifier>
</notifiers>
</ciManagement>
<distributionManagement>
<repository>
<uniqueVersion/>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
<id/>
<name/>
<url/>
<layout/>
</repository>
<snapshotRepository>
<uniqueVersion/>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
<id/>
<name/>
<url/>
<layout/>
</snapshotRepository>
<site child.site.url.inherit.append.path=.. >
<id/>
<name/>
<url/>
</site>
<downloadUrl/>
<relocation>
<groupId/>
<artifactId/>
<version/>
<message/>
</relocation>
<status/>
</distributionManagement>
<properties>
<key>value</key>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId/>
<artifactId/>
<version/>
<type/>
<classifier/>
<scope/>
<systemPath/>
<exclusions>
<exclusion>
<groupId/>
<artifactId/>
</exclusion>
</exclusions>
<optional/>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId/>
<artifactId/>
<version/>
<type/>
<classifier/>
<scope/>
<systemPath/>
<exclusions>
<exclusion>
<groupId/>
<artifactId/>
</exclusion>
</exclusions>
<optional/>
</dependency>
</dependencies>
<repositories>
<repository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
<id/>
<name/>
<url/>
<layout/>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
<id/>
<name/>
<url/>
<layout/>
</pluginRepository>
</pluginRepositories>
<build>
<sourceDirectory/>
<scriptSourceDirectory/>
<testSourceDirectory/>
<outputDirectory/>
<testOutputDirectory/>
<extensions>
<extension>
<groupId/>
<artifactId/>
<version/>
</extension>
</extensions>
<defaultGoal/>
<resources>
<resource>
<targetPath/>
<filtering/>
<directory/>
<includes/>
<excludes/>
</resource>
</resources>
<testResources>
<testResource>
<targetPath/>
<filtering/>
<directory/>
<includes/>
<excludes/>
</testResource>
</testResources>
<directory/>
<finalName/>
<filters/>
<pluginManagement>
<plugins>
<plugin>
<groupId/>
<artifactId/>
<version/>
<extensions/>
<executions>
<execution>
<id/>
<phase/>
<goals/>
<inherited/>
<configuration/>
</execution>
</executions>
<dependencies>
<dependency>
<groupId/>
<artifactId/>
<version/>
<type/>
<classifier/>
<scope/>
<systemPath/>
<exclusions>
<exclusion>
<groupId/>
<artifactId/>
</exclusion>
</exclusions>
<optional/>
</dependency>
</dependencies>
<goals/>
<inherited/>
<configuration/>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId/>
<artifactId/>
<version/>
<extensions/>
<executions>
<execution>
<id/>
<phase/>
<goals/>
<inherited/>
<configuration/>
</execution>
</executions>
<dependencies>
<dependency>
<groupId/>
<artifactId/>
<version/>
<type/>
<classifier/>
<scope/>
<systemPath/>
<exclusions>
<exclusion>
<groupId/>
<artifactId/>
</exclusion>
</exclusions>
<optional/>
</dependency>
</dependencies>
<goals/>
<inherited/>
<configuration/>
</plugin>
</plugins>
</build>
<reports/>
<reporting>
<excludeDefaults/>
<outputDirectory/>
<plugins>
<plugin>
<groupId/>
<artifactId/>
<version/>
<reportSets>
<reportSet>
<id/>
<reports/>
<inherited/>
<configuration/>
</reportSet>
</reportSets>
<inherited/>
<configuration/>
</plugin>
</plugins>
</reporting>
<profiles>
<profile>
<id/>
<activation>
<activeByDefault/>
<jdk/>
<os>
<name/>
<family/>
<arch/>
<version/>
</os>
<property>
<name/>
<value/>
</property>
<file>
<missing/>
<exists/>
</file>
</activation>
<build>
<defaultGoal/>
<resources>
<resource>
<targetPath/>
<filtering/>
<directory/>
<includes/>
<excludes/>
</resource>
</resources>
<testResources>
<testResource>
<targetPath/>
<filtering/>
<directory/>
<includes/>
<excludes/>
</testResource>
</testResources>
<directory/>
<finalName/>
<filters/>
<pluginManagement>
<plugins>
<plugin>
<groupId/>
<artifactId/>
<version/>
<extensions/>
<executions>
<execution>
<id/>
<phase/>
<goals/>
<inherited/>
<configuration/>
</execution>
</executions>
<dependencies>
<dependency>
<groupId/>
<artifactId/>
<version/>
<type/>
<classifier/>
<scope/>
<systemPath/>
<exclusions>
<exclusion>
<groupId/>
<artifactId/>
</exclusion>
</exclusions>
<optional/>
</dependency>
</dependencies>
<goals/>
<inherited/>
<configuration/>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId/>
<artifactId/>
<version/>
<extensions/>
<executions>
<execution>
<id/>
<phase/>
<goals/>
<inherited/>
<configuration/>
</execution>
</executions>
<dependencies>
<dependency>
<groupId/>
<artifactId/>
<version/>
<type/>
<classifier/>
<scope/>
<systemPath/>
<exclusions>
<exclusion>
<groupId/>
<artifactId/>
</exclusion>
</exclusions>
<optional/>
</dependency>
</dependencies>
<goals/>
<inherited/>
<configuration/>
</plugin>
</plugins>
</build>
<modules/>
<distributionManagement>
<repository>
<uniqueVersion/>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
<id/>
<name/>
<url/>
<layout/>
</repository>
<snapshotRepository>
<uniqueVersion/>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
<id/>
<name/>
<url/>
<layout/>
</snapshotRepository>
<site child.site.url.inherit.append.path=.. >
<id/>
<name/>
<url/>
</site>
<downloadUrl/>
<relocation>
<groupId/>
<artifactId/>
<version/>
<message/>
</relocation>
<status/>
</distributionManagement>
<properties>
<key>value</key>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId/>
<artifactId/>
<version/>
<type/>
<classifier/>
<scope/>
<systemPath/>
<exclusions>
<exclusion>
<groupId/>
<artifactId/>
</exclusion>
</exclusions>
<optional/>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId/>
<artifactId/>
<version/>
<type/>
<classifier/>
<scope/>
<systemPath/>
<exclusions>
<exclusion>
<groupId/>
<artifactId/>
</exclusion>
</exclusions>
<optional/>
</dependency>
</dependencies>
<repositories>
<repository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
<id/>
<name/>
<url/>
<layout/>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
</snapshots>
<id/>
<name/>
<url/>
<layout/>
</pluginRepository>
</pluginRepositories>
<reports/>
<reporting>
<excludeDefaults/>
<outputDirectory/>
<plugins>
<plugin>
<groupId/>
<artifactId/>
<version/>
<reportSets>
<reportSet>
<id/>
<reports/>
<inherited/>
<configuration/>
</reportSet>
</reportSets>
<inherited/>
<configuration/>
</plugin>
</plugins>
</reporting>
</profile>
</profiles>
</project>
project
<project>元素是描述符的根。下表列出了所有可能的子元素。
Attribute | Type | Description |
---|---|---|
child.project.url.inherit.append.path | String | 当子级继承项目的url时,是否追加路径?注意:虽然出于技术原因,该字段的类型为String,但语义类型实际上是Boolean Default value is: true Since: Maven 3.6.1 |
Element | Type | Description |
---|---|---|
modelVersion | String | 指定了当前Maven模型的版本号 |
Parent | Parent | 父项目的位置(如果存在)。如果未指定父项目中的值,则它们将是此项目的默认值。该位置以group ID, artifact ID and version的形式给出。 |
groupId | String | 项目的通用唯一标识符。通常使用完全限定的包名称来将其与具有类似名称的其他项目(例如org.apache.maven)区分开来。 |
artifactId | String | 在groupId 给定的组中是唯一的。artifact 是由项目生产或使用的东西。Maven为项目生成的工件的示例包括:JAR、源代码和二进制发行版以及WAR。 |
version | String | 此项目生成的artifact 的当前版本。 |
packaging | String | 该项目产生的工件的类型,例如jar war ear pom。插件可以创建自己的打包,因此也可以创建它们自己的打包类型,因此该列表不包含所有可能的类型。 Default value is: |
name | String | 项目名称 |
description | String | 项目的详细描述,Maven在需要描述项目时使用,例如在网站上。虽然可以将该元素指定为CDATA以允许在描述中使用HTML标记,但不建议允许纯文本表示。如果需要修改生成的网站的索引页,则可以指定自己的索引页而不是调整此文本。 |
url | String | 项目主页的URL。 默认值为:父值[+路径调整]+(artifactId或project.directory属性),或者如果项目的子级为.project.url.inherit.append.path=“false”,则仅为父值 |
inceptionYear | String | 项目开始的年份,用4位数字指定。此值在生成版权声明以及作为信息时使用。 |
Organization | Organization | 该元素描述项目所属组织的各种属性。创建文档时使用这些属性(用于版权声明和链接)。 |
licenses/license* | List<License> | (Many) 此元素描述此项目的所有许可证。每个许可都由许可元素描述,然后由其他元素描述。项目应仅列出应用于项目的许可证,而不是应用于依赖项的许可证。如果列出了多个许可证,则假设用户可以选择其中的任何一个,而不是必须全部接受。 |
developers/developer* | List<Developer> | (Many) 描述项目的提交者。 |
contributors/contributor* | List<Contributor> | (Many) 描述尚未提交的项目参与者。 |
mailingLists/mailingList* | List<MailingList> | (Many) Contains information about a project's mailing lists. |
Prerequisites | Prerequisites | Describes the prerequisites in the build environment for this project. |
modules/module* | List<String> | (Many) 要作为此项目的一部分生成的模块(有时称为子项目)。列出的每个模块都是包含该模块的目录的相对路径。为了与从父级计算默认url的方式一致,建议模块名称与artifact ids匹配。 |
Scm | Scm | Specification for the SCM used by the project, such as CVS, Subversion, etc. |
IssueManagement | IssueManagement | The project's issue management system information. |
CiManagement | CiManagement | The project's continuous integration information. |
DistributionManagement | DistributionManagement | 支持将站点和工件分别部署到远程web服务器和存储库的项目的分发信息。 |
properties/key=value* | Properties | (Many) 可以在整个POM中用作替代的属性,并在启用时用作资源中的筛选器。格式为<name>value</name>。 |
DependencyManagement | DependencyManagement | 从该项目继承的项目的默认依赖项信息。此部分中的依赖项不会立即解析。相反,当从该POM派生的POM声明由匹配的groupId和artifactId描述的依赖项时,如果尚未指定该部分中的版本和其他值,则将其用于该依赖项。 |
dependencies/Dependency* | List<Dependency> | (Many) 该元素描述与项目关联的所有依赖项。这些依赖项用于在构建过程中为项目构建类路径。它们将从该项目中定义的存储库中自动下载。有关详细信息,请参阅依赖关系机制。 |
repositories/Repository* | List<Repository> | (Many) The lists of the remote repositories for discovering dependencies and extensions. |
pluginRepositories/pluginRepository* | List<Repository> | (Many) The lists of the remote repositories for discovering plugins for builds and reports. |
Build | Build | Information required to build the project. |
reports | DOM | Deprecated. Now ignored by Maven. |
reporting | Reporting | 该元素包括用于在Maven生成的站点上生成报告的报告插件的规范。这些报告将在用户执行mvn站点时运行。所有报告都将包含在导航栏中以供浏览。 |
profiles/profile* | List<Profile> | (Many) 激活时将修改生成过程的项目本地生成配置文件的列表。 |