Package: org.gradle.api.artifacts.maven

## [Java] Interface PomFilterContainer

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

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `String` | `DEFAULT_ARTIFACT_POM_NAME` |

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `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.
    `MavenPom` | `addFilter(String name, Closure filter)` Adds a publish filter.
    `PublishFilter` | `filter(String name)` Returns a filter added with addFilter(String, org.gradle.api.artifacts.maven.PublishFilter).
    `void` | `filter(Closure filter)` Sets the default publish filter.
    `Iterable<PomFilter>` | `getActivePomFilters()`
    `PublishFilter` | `getFilter()` Returns the default filter being used. .
    `MavenPom` | `getPom()` Returns the POM property of the custom filter.
    `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(Closure configureClosure)` Configures the default POM by a closure.
    `void` | `setFilter(PublishFilter defaultFilter)`
    `void` | `setPom(MavenPom defaultPom)`

- - ### Field Detail

    - #### public String DEFAULT_ARTIFACT_POM_NAME

  - ### Method Detail

    - #### public 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

    - #### public 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
        PomFilterContainer.addFilter

    - #### public PublishFilter filter(String name)

      Returns a filter added with addFilter(String, org.gradle.api.artifacts.maven.PublishFilter).

      Parameters:
        `name` - The name of the filter

    - #### public void filter(Closure filter)

      Sets the default publish filter.

      Parameters:
        `filter` - The filter to be set
      See Also:
        PublishFilter
        PomFilterContainer.setFilter

    - #### public Iterable<PomFilter> getActivePomFilters()

    - #### public PublishFilter getFilter()

      Returns the default filter being used. .

      See Also:
        setFilter(org.gradle.api.artifacts.maven.PublishFilter)

    - #### public 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

    - #### public 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.

    - #### public 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.

      Parameters:
        name
        configureClosure
      Returns:
        The POM object associated with the given name.
      See Also:
        PomFilterContainer.pom

    - #### public MavenPom pom(Closure configureClosure)

      Configures the default POM by a closure. The closure statements are delegated to the default POM.

      Parameters:
        configureClosure
      Returns:
        The default POM.
      See Also:
        PomFilterContainer.getPom

    - #### public 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.

      Parameters:
        defaultFilter
      See Also:
        getFilter()

    - #### public 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.

      Parameters:
        defaultPom