The <project> element is the root of the descriptor. The following table lists all of the important child elements.
Element | Type | Description |
modelVersion | String | Declares to which version of project descriptor this POM conforms. |
parent | Parent | The <parent> element contains the information required to locate the parent project from which this project will inherit from |
groupId | String | A universally unique identifier for a project. It is normal to use a fully-qualified package name to distinguish it from other projects with a similar name (eg.org.apache.maven). |
artifactId | String | The identifier for this artifact that is unique within the group given by the group ID. An artifact is something that is either produced or used by a project. Examples of artifacts produced by Maven for a project include: JARs, source and binary distributions, and WARs. |
version | String | The current version of the artifact produced by this project. |
packaging | String | The type of artifact this project produces, for example jar war ear pom. Plugins can create their own packaging, and therefore their own packaging types, so this list does not contain all possible types. Default value is: jar. |
name | String | The full name of the project. |
url | String | The URL to the project's homepage. Default value is: parent value [+ path adjustment] + artifactId |
organization | Organization | This element describes various attributes of the organization to which the project belongs. These attributes are utilised when documentation is created (for copyright notices and links). |
scm | Scm(Software Configuration management) | 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 | Distribution Management | Distribution information for a project that enables deployment of the site and artifacts to remote web servers and repositories respectively. |
properties/ key=value* | Properties | (Many) Properties that can be used throughout the POM as a substitution, and are used as filters in resources if enabled. The format is <name>value</name>. |
dependencyManagement | Dependency Management | Default dependency information for projects that inherit from this one. The dependencies in this section are not immediately resolved. Instead, when a POM derived from this one declares a dependency described by a matching groupId and artifactId, the version and other values from this section are used for that dependency if they were not already specified. |
dependencies/ dependency* | List<Dependency> | (Many) This element describes all of the dependencies associated with a project. These dependencies are used to construct a classpath for your project during the build process. They are automatically downloaded from the repositories defined in this project. |
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. |
reporting | Reporting | This element includes the specification of report plugins to use to generate the reports on the Maven-generated site. These reports will be run when a user executes mvn site. All of the reports will be included in the navigation bar for browsing. |
profiles/profile* | List<Profile> | (Many) A listing of project-local build profiles which will modify the build process when activated. |