org.gradle.api.artifacts.maven

## Interface MavenPom

-     public interface MavenPom

  Is used for generating a Maven POM file and customizing the generation. To learn about the Maven POM see: http://maven.apache.org/pom.html

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `POM_FILE_ENCODING`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getArtifactId()` Returns the artifact id for this POM.
    `ConfigurationContainer` | `getConfigurations()` Returns the configuration container used for mapping configurations to Maven scopes.
    `List<?>` | `getDependencies()` Returns the dependencies for this POM.
    `MavenPom` | `getEffectivePom()` Returns a POM with the generated dependencies and the `whenConfigured(org.gradle.api.Action)` actions applied.
    `String` | `getGroupId()` Returns the group id for this POM.
    `Object` | `getModel()` Returns the underlying native Maven `Model` object.
    `String` | `getPackaging()` Returns the packaging for this POM.
    `Conf2ScopeMappingContainer` | `getScopeMappings()` Returns the scope mappings used for generating this POM.
    `String` | `getVersion()` Returns the version for this POM.
    `MavenPom` | `project(Action<? super GroovyObject> pom)` Provides a builder for the Maven POM for adding or modifying properties of the Maven `getModel()`.
    `MavenPom` | `project(Closure pom)` Provides a builder for the Maven POM for adding or modifying properties of the Maven `getModel()`.
    `MavenPom` | `setArtifactId(String artifactId)` Sets the artifact id for this POM.
    `MavenPom` | `setConfigurations(ConfigurationContainer configurations)` Sets the configuration container used for mapping configurations to Maven scopes.
    `MavenPom` | `setDependencies(List<?> dependencies)` Sets the dependencies for this POM.
    `MavenPom` | `setGroupId(String groupId)` Sets the group id for this POM.
    `MavenPom` | `setModel(Object model)` Sets the underlying native Maven `Model` object.
    `MavenPom` | `setPackaging(String packaging)` Sets the packaging for this POM.
    `MavenPom` | `setVersion(String version)` Sets the version for this POM.
    `MavenPom` | `whenConfigured(Action<MavenPom> action)` Adds an action to be called when the POM has been configured.
    `MavenPom` | `whenConfigured(Closure closure)` Adds a closure to be called when the POM has been configured.
    `MavenPom` | `withXml(Action<XmlProvider> action)` Adds an action to be called when the POM XML has been created.
    `MavenPom` | `withXml(Closure closure)` Adds a closure to be called when the POM XML has been created.
    `MavenPom` | `writeTo(Object path)` Writes the `getEffectivePom()` XML to a file while applying the `withXml(org.gradle.api.Action)` actions.
    `MavenPom` | `writeTo(Writer writer)` Writes the `getEffectivePom()` XML to a writer while applying the `withXml(org.gradle.api.Action)` actions.

- - ### Field Detail

    - #### POM_FILE_ENCODING

          static final String POM_FILE_ENCODING

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getScopeMappings

          Conf2ScopeMappingContainer getScopeMappings()

      Returns the scope mappings used for generating this POM.

    - #### project

          MavenPom project(Closure pom)

      Provides a builder for the Maven POM for adding or modifying properties of the Maven `getModel()`. The syntax is exactly the same as used by polyglot Maven. For example:

           pom.project {
              inceptionYear '2008'
              licenses {
                 license {
                    name 'The Apache Software License, Version 2.0'
                    url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    distribution 'repo'
                 }
              }
           }

      Returns:
        this

    - #### project

          MavenPom project(Action<? super GroovyObject> pom)

      Provides a builder for the Maven POM for adding or modifying properties of the Maven `getModel()`. The syntax is exactly the same as used by polyglot Maven. For example:

           pom.project {
              inceptionYear '2008'
              licenses {
                 license {
                    name 'The Apache Software License, Version 2.0'
                    url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    distribution 'repo'
                 }
              }
           }

      Returns:
        this
      Since:
        4.2

    - #### getGroupId

          String getGroupId()

      Returns the group id for this POM.
      See Also:
        `Model.setGroupId(String)`

    - #### setGroupId

          MavenPom setGroupId(String groupId)

      Sets the group id for this POM.
      Returns:
        this
      See Also:
        `Model.getGroupId()`

    - #### getArtifactId

          String getArtifactId()

      Returns the artifact id for this POM.
      See Also:
        `Model.getArtifactId()`

    - #### setArtifactId

          MavenPom setArtifactId(String artifactId)

      Sets the artifact id for this POM.
      Returns:
        this
      See Also:
        `Model.setArtifactId(String)`

    - #### getVersion

          String getVersion()

      Returns the version for this POM.
      See Also:
        `Model.getVersion()`

    - #### setVersion

          MavenPom setVersion(String version)

      Sets the version for this POM.
      Returns:
        this
      See Also:
        `Model.setVersion(String)`

    - #### getPackaging

          String getPackaging()

      Returns the packaging for this POM.
      See Also:
        `Model.getPackaging()`

    - #### setPackaging

          MavenPom setPackaging(String packaging)

      Sets the packaging for this POM.
      Returns:
        this
      See Also:
        `Model.setPackaging(String)`

    - #### setDependencies

          MavenPom setDependencies(List<?> dependencies)

      Sets the dependencies for this POM.
      Returns:
        this
      See Also:
        `ModelBase.setDependencies(java.util.List)`

    - #### getDependencies

          List<?> getDependencies()

      Returns the dependencies for this POM.
      See Also:
        `ModelBase.getDependencies()`

    - #### getModel

          Object getModel()

      Returns the underlying native Maven `Model` object. The MavenPom object delegates all the configuration information to this object. There Gradle MavenPom objects provides delegation methods just for setting the groupId, artifactId, version and packaging. For all other elements, either use the model object or `project(groovy.lang.Closure)`.
      Returns:
        the underlying native Maven object

    - #### setModel

          MavenPom setModel(Object model)

      Sets the underlying native Maven `Model` object.
      Returns:
        this
      See Also:
        `getModel()`

    - #### writeTo

          MavenPom writeTo(Writer writer)

      Writes the `getEffectivePom()` XML to a writer while applying the `withXml(org.gradle.api.Action)` actions. Closes the supplied Writer when finished.
      Parameters:
        `writer` - The writer to write the POM to.
      Returns:
        this

    - #### writeTo

          MavenPom writeTo(Object path)

      Writes the `getEffectivePom()` XML to a file while applying the `withXml(org.gradle.api.Action)` actions. The path is resolved as defined by `Project.files(Object...)` The file will be encoded as UTF-8.
      Parameters:
        `path` - The path of the file to write the POM into.
      Returns:
        this

    - #### whenConfigured

          MavenPom whenConfigured(Closure closure)

      Adds a closure to be called when the POM has been configured. The POM is passed to the closure as a parameter.

      Parameters:
        `closure` - The closure to execute when the POM has been configured.
      Returns:
        this

    - #### whenConfigured

          MavenPom whenConfigured(Action<MavenPom> action)

      Adds an action to be called when the POM has been configured. The POM is passed to the action as a parameter.

      Parameters:
        `action` - The action to execute when the POM has been configured.
      Returns:
        this

    - #### withXml

          MavenPom withXml(Closure closure)

      Adds a closure to be called when the POM XML has been created. The XML is passed to the closure as a parameter in form of a `XmlProvider`. The action can modify the XML.

      Parameters:
        `closure` - The closure to execute when the POM XML has been created.
      Returns:
        this

    - #### withXml

          MavenPom withXml(Action<XmlProvider> action)

      Adds an action to be called when the POM XML has been created. The XML is passed to the action as a parameter in form of a `XmlProvider`. The action can modify the XML.

      Parameters:
        `action` - The action to execute when the POM XML has been created.
      Returns:
        this

    - #### getConfigurations

          ConfigurationContainer getConfigurations()

      Returns the configuration container used for mapping configurations to Maven scopes.

    - #### setConfigurations

          MavenPom setConfigurations(ConfigurationContainer configurations)

      Sets the configuration container used for mapping configurations to Maven scopes.
      Returns:
        this

    - #### getEffectivePom

          MavenPom getEffectivePom()

      Returns a POM with the generated dependencies and the `whenConfigured(org.gradle.api.Action)` actions applied.
      Returns:
        the effective POM