Package org.gradle.api.artifacts.maven

## Interface PomFilterContainer

- All Known Subinterfaces:
    `GroovyMavenDeployer`, `MavenDeployer`, `MavenResolver`

      public interface PomFilterContainer

  Manages a set of `MavenPom` instances and their associated `PublishFilter` instances.

- - ### Field Summary

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

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `MavenPom` | `addFilter​(String name, Closure filter)` | Adds a publish filter.
    `MavenPom` | `addFilter​(String name, PublishFilter publishFilter)` | If you want to deploy more than one artifact you need to define filters to select each of those artifacts.
    `void` | `filter​(Closure filter)` | Sets the default publish filter.
    `PublishFilter` | `filter​(String name)` | Returns a filter added with `addFilter(String, org.gradle.api.artifacts.maven.PublishFilter)`.
    `Iterable<org.gradle.api.publication.maven.internal.PomFilter>` | `getActivePomFilters()` |
    `PublishFilter` | `getFilter()` | Returns the default filter being used.
    `MavenPom` | `getPom()` | Returns the POM property of the custom filter.
    `MavenPom` | `pom​(Closure configureClosure)` | Configures the default POM by a closure.
    `MavenPom` | `pom​(String name)` | Returns the POM associated with a filter added with `addFilter(String, org.gradle.api.artifacts.maven.PublishFilter)`.
    `MavenPom` | `pom​(String name, Closure configureClosure)` | Configures a POM by a closure.
    `MavenPom` | `pom​(String name, Action<? super MavenPom> configureAction)` | Configures a POM by an action.
    `MavenPom` | `pom​(Action<? super MavenPom> configureAction)` | Configures the default POM by an action.
    `void` | `setFilter​(PublishFilter defaultFilter)` | Sets the default filter to be used.
    `void` | `setPom​(MavenPom defaultPom)` | Sets the default POM to be used.

- - ### Field Detail

    - #### DEFAULT_ARTIFACT_POM_NAME

          static final String DEFAULT_ARTIFACT_POM_NAME

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getFilter

          PublishFilter getFilter()

      Returns the default filter being used. .
      See Also:
        `setFilter(org.gradle.api.artifacts.maven.PublishFilter)`

    - #### setFilter

          void setFilter​(PublishFilter defaultFilter)

      Sets the default filter to be used. This filter is active if no custom filters have been added (see `addFilter(String, org.gradle.api.artifacts.maven.PublishFilter)`). If at least one custom filter has been added the default filter is not used any longer.

      The default for this property is `PublishFilter.ALWAYS_ACCEPT`. If there is only one artifact you are fine with this filter. If there is more than one artifact, deployment will lead to an exception, if you don't specify a filter that selects the artifact to deploy. If you want to deploy more than one artifact you have to use the (see `addFilter(String, org.gradle.api.artifacts.maven.PublishFilter)` method.

      See Also:
        `getFilter()`

    - #### getPom

          MavenPom getPom()

      Returns the POM property of the custom filter. The POM property can be used to customize the POM generation. By default the properties of such a POM object are all null. Null means that Gradle will use default values for generating the Maven POM. Those default values are derived from the deployable artifact and from the project type (e.g. java, war, ...). If you explicitly set a POM property, Gradle will use those instead.
      Returns:
        The Maven Pom

    - #### setPom

          void setPom​(MavenPom defaultPom)

      Sets the default POM to be used. This POM is active if no custom filters have been added (see `addFilter(String, org.gradle.api.artifacts.maven.PublishFilter)`). If at least one custom filter has been added the default POM is not used any longer.

      Usually you don't need to set this property as the default value provides you a POM object you might use for configuration. By default the properties of such a POM object are all null. If they are null, Gradle will use default values for generating the Maven POM. Those default values are derived from the deployable artifact and from the project type (e.g. java, war, ...). If you explicitly set a POM property, Gradle will use this instead.

    - #### addFilter

          MavenPom addFilter​(String name,
                             PublishFilter publishFilter)

      If you want to deploy more than one artifact you need to define filters to select each of those artifacts. The method returns a POM object associated with this filter, that allows you to customize the POM generation for the artifact selected by the filter.
      Parameters:
        `name` - The name of the filter
        `publishFilter` - The filter to use
      Returns:
        The POM associated with the filter

    - #### addFilter

          MavenPom addFilter​(String name,
                             Closure filter)

      Adds a publish filter.
      Parameters:
        `name` - The name of the filter
        `filter` - The filter
      Returns:
        The Maven POM associated with the closure
      See Also:
        `PublishFilter`, `addFilter(String, org.gradle.api.artifacts.maven.PublishFilter)`

    - #### filter

          PublishFilter filter​(String name)

      Returns a filter added with `addFilter(String, org.gradle.api.artifacts.maven.PublishFilter)`.
      Parameters:
        `name` - The name of the filter

    - #### filter

          void filter​(Closure filter)

      Sets the default publish filter.
      Parameters:
        `filter` - The filter to be set
      See Also:
        `PublishFilter`, `setFilter(org.gradle.api.artifacts.maven.PublishFilter)`

    - #### pom

          MavenPom pom​(String name)

      Returns the POM associated with a filter added with `addFilter(String, org.gradle.api.artifacts.maven.PublishFilter)`.
      Parameters:
        `name` - The name of the filter.

    - #### pom

          MavenPom pom​(String name,
                       Closure configureClosure)

      Configures a POM by a closure. The closure statements are delegated to the POM object associated with the given name.
      Returns:
        The POM object associated with the given name.
      See Also:
        `pom(String)`

    - #### pom

          MavenPom pom​(Closure configureClosure)

      Configures the default POM by a closure. The closure statements are delegated to the default POM.
      Returns:
        The default POM.
      See Also:
        `getPom()`

    - #### pom

          MavenPom pom​(String name,
                       Action<? super MavenPom> configureAction)

      Configures a POM by an action. The action is executed against the POM object associated with the given name.
      Returns:
        The POM object associated with the given name.
      Since:
        4.2
      See Also:
        `pom(String)`

    - #### pom

          MavenPom pom​(Action<? super MavenPom> configureAction)

      Configures the default POM by an action.
      Returns:
        The default POM.
      Since:
        4.2
      See Also:
        `getPom()`

    - #### getActivePomFilters

          Iterable<org.gradle.api.publication.maven.internal.PomFilter> getActivePomFilters()