Skip to main content

pom.yaml Reference

Here is a complete list of property name and their meaning in pom.yaml. The absolute minimal properties are those that represent Maven coordinate. That is, group, artifactId and version. However, individual pom.yaml does not need to have all three, as long as the merged result of multiple files has all this information. If the merged result missed artifactId, the project name will be used as default.

NameMeaning
variantOptional variant name for the POM fragment. See POM variant section of this guide.
groupThe group of the coordinate of the component. Must present in merged result.
artifactIdThe artefact Id of coordinate of the component. If it is not specified, the default is the project name.
versionThe version of the coordinate of the component. Must present in merged result.
packagingThe format of the artefact. Can be, but not limited to, jar, aar, war.
licensesA collection of licenses
developersA collection of developers
contributorsA collection of contributors
organizationThe organization that the component belongs to.
webThe website for the component.
scmThe version control system for the component.
pluginDefinition of Gradle plugin publishing

licenses #

licenses:- name: Apache-2.0  dist: repo

The url field will be filled automatically by the plugin with the value http://www.apache.org/licenses/LICENSE-2.0.txt.

Predefined license types included:

  • Apache-2.0
  • BSD-3-Clause
  • MIT
  • GPLv3
  • LGPLv3
NameMeaning
nameName of license.
urlURL to the full text of license.
distrepo or manual
commentAdditional comment to the license.

See this for a full description of the block.

developers #

developers block may specify multiple developers participated in developing the component.

NameMeaning
idID of the developer. It is an arbitrary ID that helps to organize people in an organization.
nameName of the person.
emailEmail address of the person.
organizationThe organization that the person belongs to.
timeZoneThe time zone that the person is in.
urlURL of information about the person.

contributors #

A collection of person that contributed to the project. The format is identical to the developers block.

organization #

NameMeaning
nameName of the organization.
urlURL to further information of the organization.

scm #

NameMeaning
urlURL to the source code control system. If repoType and repoName is given. This field is automatically filled as https://{repoType}/{repoName}
connectionThe string to identify the project in the source code control system. The format depends on the repoType. It is usually a URL to the source code repository. Normally access to the repository pointed by this value is read-only.
developerConnectionSimilar to connection, but specify the repository that requires write access.
repoTypeUsually the domain name of the service, like github.com, gitlab.com
repoNameUsually the path after repoType represents the user account and repository name of the source code control system. For example, hkhc/jarbird.
issueTypeThe type of issue management system. It could be the same as repoType for cases like github.com.
issueUrlURL to the issue management system for this component.
tagFurther information about the component in the source code management system.

web #

NameMeaning
urlURL to the website of this component.
descriptionDescription of the website.

plugin #

plugin block is only needed to publish the Gradle plugin.

NameMeaning
idPlugin ID used to declare the use of the plugin.
displayNameThe name of the plugin to be shown in Gradle Plugin Portal.
descriptionDescription of the plugin.
implementationClassThe fully qualified class name
tagsMultiple values of tag string to be sent to Gradle Plugin Portal.