# Interface IvyArtifactSet

All Superinterfaces:
  `Collection<IvyArtifact>, DomainObjectCollection<IvyArtifact>, DomainObjectSet<IvyArtifact>, Iterable<IvyArtifact>, Set<IvyArtifact>`

public interface IvyArtifactSet extends DomainObjectSet<IvyArtifact>
A Collection of `IvyArtifact`s to be included in an `IvyPublication`. Being a `DomainObjectSet`, an `IvyArtifactSet` provides convenient methods for querying, filtering, and applying actions to the set of `IvyArtifact`s.

    plugins {
        id 'ivy-publish'
    }

    def publication = publishing.publications.create("my-pub", IvyPublication)
    def artifacts = publication.artifacts

    artifacts.matching({
        it.type == "source"
    }).all({
        it.extension = "src.jar"
    })

Since:
  1.5
See Also:
  - `DomainObjectSet`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `IvyArtifact`
  `artifact(Object source)`
  Creates and adds a `IvyArtifact` to the set.
  `IvyArtifact`
  `artifact(Object source, Action<? super IvyArtifact> config)`
  Creates and adds a `IvyArtifact` to the set, which is configured by the associated action.

  ### Methods inherited from interface Collection

  `parallelStream, removeIf, stream, toArray`

  ### Methods inherited from interface DomainObjectCollection

  `addAllLater, addLater, all, all, configureEach, disallowChanges, getElements, whenObjectAdded, whenObjectAdded, whenObjectRemoved, whenObjectRemoved, withType, withType`

  ### Methods inherited from interface DomainObjectSet

  `findAll, matching, matching, withType`

  ### Methods inherited from interface Iterable

  `forEach`

  ### Methods inherited from interface Set

  `add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, spliterator, toArray, toArray`

- ## Method Details

  - ### artifact

    IvyArtifact artifact(Object source)
    Creates and adds a `IvyArtifact` to the set. The semantics of this method are the same as `IvyPublication.artifact(Object)`.
    Parameters:
      `source` - The source of the artifact content.
    Since:
      1.5

  - ### artifact

    IvyArtifact artifact(Object source, Action<? super IvyArtifact> config)
    Creates and adds a `IvyArtifact` to the set, which is configured by the associated action. The semantics of this method are the same as `IvyPublication.artifact(Object, Action)`.
    Parameters:
      `source` - The source of the artifact.
      `config` - An action to configure the values of the constructed `IvyArtifact`.
    Since:
      1.5