# IvyModuleDescriptorSpec

API Documentation: | `IvyModuleDescriptorSpec`

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

The descriptor of any Ivy publication.

Corresponds to the XML version of the Ivy Module Descriptor.

The `IvyModuleDescriptorSpec.withXml()` method can be used to modify the descriptor after it has been generated according to the publication data.

### Properties

Property | Description
`branch` | Incubating The branch for this publication
`extraInfo` | Incubating The extra info element spec for this publication
`status` | Incubating The status for this publication.

### Methods

Method | Description
`extraInfo(namespace, elementName, value)` | Incubating Adds a new extra info element to the publication
`withXml(action)` | Incubating Allow configuration of the descriptor, after it has been generated according to the input data.

### Script blocks

No script blocks

### Property details

#### `String` `branch`

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

The branch for this publication

#### `IvyExtraInfoSpec` `extraInfo` (read-only)

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

The extra info element spec for this publication

#### `String` `status`

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

The status for this publication.

### Method details

#### `void` `extraInfo`(`String` namespace, `String` elementName, `String` value)

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

Adds a new extra info element to the publication

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

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

Allow configuration of the descriptor, after it has been generated according to the input data.

    apply plugin: "ivy-publish"

    publishing {
      publications {
        ivy(IvyPublication) {
          descriptor {
            withXml {
              asNode().dependencies.dependency.find { it.@org == "junit" }.@rev = "4.10"
            }
          }
        }
      }
    }

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 Ivy Module Descriptor reference.