# MavenPom

API Documentation: | `MavenPom`

The POM for a Maven publication.

The `MavenPom.withXml(org.gradle.api.Action)` method can be used to modify the descriptor after it has been generated according to the publication data. However, the preferred way to customize the project information to be published is to use the dedicated properties exposed by this class, e.g. `MavenPom.getDescription()`. Please refer to the official POM Reference for detailed information about the individual properties.

### Properties

Property | Description
`description` | Incubating The description for the publication represented by this POM.
`inceptionYear` | Incubating The year of the inception for the publication represented by this POM.
`name` | Incubating The name for the publication represented by this POM.
`packaging` | The packaging for the publication represented by this POM.
`url` | Incubating The URL for the publication represented by this POM.

### Methods

Method | Description
`ciManagement(action)` | Incubating Configures the CI management for the publication represented by this POM.
`contributors(action)` | Incubating Configures the contributors for the publication represented by this POM.
`developers(action)` | Incubating Configures the developers for the publication represented by this POM.
`distributionManagement(action)` | Incubating Configures the distribution management for the publication represented by this POM.
`issueManagement(action)` | Incubating Configures the issue management for the publication represented by this POM.
`licenses(action)` | Incubating Configures the licenses for the publication represented by this POM.
`mailingLists(action)` | Incubating Configures the mailing lists for the publication represented by this POM.
`organization(action)` | Incubating Configures the organization for the publication represented by this POM.
`scm(action)` | Incubating Configures the SCM (source control management) for the publication represented by this POM.
`withXml(action)` | Allows configuration of the POM, after it has been generated according to the input data.

### Script blocks

No script blocks

### Property details

#### ``Property`<`String`>` `description`

Note: This property is incubating and may change in a future version of Gradle.

The description for the publication represented by this POM.

#### ``Property`<`String`>` `inceptionYear`

Note: This property is incubating and may change in a future version of Gradle.

The year of the inception for the publication represented by this POM.

#### ``Property`<`String`>` `name`

Note: This property is incubating and may change in a future version of Gradle.

The name for the publication represented by this POM.

#### `String` `packaging`

The packaging for the publication represented by this POM.

#### ``Property`<`String`>` `url`

Note: This property is incubating and may change in a future version of Gradle.

The URL for the publication represented by this POM.

### Method details

#### `void` `ciManagement`(``Action`<? super `MavenPomCiManagement`>` action)

Note: This method is incubating and may change in a future version of Gradle.

Configures the CI management for the publication represented by this POM.

#### `void` `contributors`(``Action`<? super `MavenPomContributorSpec`>` action)

Note: This method is incubating and may change in a future version of Gradle.

Configures the contributors for the publication represented by this POM.

#### `void` `developers`(``Action`<? super `MavenPomDeveloperSpec`>` action)

Note: This method is incubating and may change in a future version of Gradle.

Configures the developers for the publication represented by this POM.

#### `void` `distributionManagement`(``Action`<? super `MavenPomDistributionManagement`>` action)

Note: This method is incubating and may change in a future version of Gradle.

Configures the distribution management for the publication represented by this POM.

#### `void` `issueManagement`(``Action`<? super `MavenPomIssueManagement`>` action)

Note: This method is incubating and may change in a future version of Gradle.

Configures the issue management for the publication represented by this POM.

#### `void` `licenses`(``Action`<? super `MavenPomLicenseSpec`>` action)

Note: This method is incubating and may change in a future version of Gradle.

Configures the licenses for the publication represented by this POM.

#### `void` `mailingLists`(``Action`<? super `MavenPomMailingListSpec`>` action)

Note: This method is incubating and may change in a future version of Gradle.

Configures the mailing lists for the publication represented by this POM.

#### `void` `organization`(``Action`<? super `MavenPomOrganization`>` action)

Note: This method is incubating and may change in a future version of Gradle.

Configures the organization for the publication represented by this POM.

#### `void` `scm`(``Action`<? super `MavenPomScm`>` action)

Note: This method is incubating and may change in a future version of Gradle.

Configures the SCM (source control management) for the publication represented by this POM.

#### `void` `withXml`(``Action`<? super `XmlProvider`>` action)

Allows configuration of the POM, after it has been generated according to the input data.

    apply plugin: "maven-publish"

    publishing {
      publications {
        maven(MavenPublication) {
          pom.withXml {
            asNode().appendNode('properties').appendNode('my-property', 'my-value')
          }
        }
      }
    }

Note that due to Gradle's internal type conversion system, you can pass a Groovy closure to this method and it will be automatically converted to an `Action`.

Each action/closure passed to this method will be stored as a callback, and executed when the publication that this descriptor is attached to is published.

For details on the structure of the XML to be modified, see the POM reference.