# Interface ArtifactRepositoryContainer

All Superinterfaces:
  `Collection<ArtifactRepository>, Configurable<ArtifactRepositoryContainer>, DomainObjectCollection<ArtifactRepository>, Iterable<ArtifactRepository>, List<ArtifactRepository>, NamedDomainObjectCollection<ArtifactRepository>, NamedDomainObjectList<ArtifactRepository>, SequencedCollection<ArtifactRepository>`

All Known Subinterfaces:
  `RepositoryHandler`

public interface ArtifactRepositoryContainer extends NamedDomainObjectList<ArtifactRepository>, Configurable<ArtifactRepositoryContainer>

A `ResolverContainer` is responsible for managing a set of `ArtifactRepository` instances. Repositories are arranged in a sequence.

You can obtain a `ResolverContainer` instance by calling `Project.getRepositories()` or using the `repositories` property in your build script.

The resolvers in a container are accessible as read-only properties of the container, using the name of the resolver as the property name. For example:

    repositories.maven { name = 'myResolver' }
    repositories.myResolver.url = uri('some-url')

A dynamic method is added for each resolver which takes a configuration closure. This is equivalent to calling `getByName(String, groovy.lang.Closure)`. For example:

    repositories.maven { name = 'myResolver' }
    repositories.myResolver {
        url = uri('some-url')
    }

Since:
  1.0

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `DEFAULT_MAVEN_CENTRAL_REPO_NAME`
  The default maven central repo name.
  `static final String`
  `DEFAULT_MAVEN_LOCAL_REPO_NAME`
  The default maven local repo name.
  `static final String`
  `GOOGLE_URL`
  The google url.
  `static final String`
  `MAVEN_CENTRAL_URL`
  The maven central url.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `add(ArtifactRepository repository)`
  Adds a repository to this container, at the end of the repository sequence.
  `void`
  `addFirst(ArtifactRepository repository)`
  Adds a repository to this container, at the start of the repository sequence.
  `void`
  `addLast(ArtifactRepository repository)`
  Adds a repository to this container, at the end of the repository sequence.
  `ArtifactRepository`
  `getAt(String name)`
  Locates an object by name, failing if there is no such object.
  `ArtifactRepository`
  `getByName(String name)`
  Locates an object by name, failing if there is no such object.
  `ArtifactRepository`
  `getByName(String name, Closure configureClosure)`
  Locates an object by name, failing if there is no such object.
  `ArtifactRepository`
  `getByName(String name, Action<? super ArtifactRepository> configureAction)`
  Locates an object by name, failing if there is no such object.

  ### Methods inherited from interface Collection

  `parallelStream, removeIf, stream, toArray`

  ### Methods inherited from interface Configurable

  `configure`

  ### Methods inherited from interface DomainObjectCollection

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

  ### Methods inherited from interface Iterable

  `forEach`

  ### Methods inherited from interface List

  `add, addAll, addAll, clear, contains, containsAll, equals, get, getFirst, getLast, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeFirst, removeLast, replaceAll, retainAll, reversed, set, size, sort, spliterator, subList, toArray, toArray`

  ### Methods inherited from interface NamedDomainObjectCollection

  `addAll, addRule, addRule, addRule, findByName, getAsMap, getCollectionSchema, getNamer, getNames, getRules, named, named, named, named`

  ### Methods inherited from interface NamedDomainObjectList

  `findAll, matching, matching, named, withType`

- ## Field Details

  - ### DEFAULT_MAVEN_CENTRAL_REPO_NAME

    static final String DEFAULT_MAVEN_CENTRAL_REPO_NAME
    The default maven central repo name.
    Since:
      1.0
    See Also:
      - Constant Field Values

  - ### DEFAULT_MAVEN_LOCAL_REPO_NAME

    static final String DEFAULT_MAVEN_LOCAL_REPO_NAME
    The default maven local repo name.
    Since:
      1.0
    See Also:
      - Constant Field Values

  - ### MAVEN_CENTRAL_URL

    static final String MAVEN_CENTRAL_URL
    The maven central url.
    Since:
      1.0
    See Also:
      - Constant Field Values

  - ### GOOGLE_URL

    static final String GOOGLE_URL
    The google url.
    Since:
      4.0
    See Also:
      - Constant Field Values

- ## Method Details

  - ### add

    boolean add(ArtifactRepository repository)
    Adds a repository to this container, at the end of the repository sequence.
    Specified by:
      `add` in interface `Collection<ArtifactRepository>`
    Specified by:
      `add` in interface `List<ArtifactRepository>`
    Specified by:
      `add` in interface `NamedDomainObjectCollection<ArtifactRepository>`
    Parameters:
      `repository` - The repository to add.
    Returns:
      `true` if the item was added, or false if an item with the same name already exists.

  - ### addFirst

    void addFirst(ArtifactRepository repository)
    Adds a repository to this container, at the start of the repository sequence.
    Specified by:
      `addFirst` in interface `List<ArtifactRepository>`
    Specified by:
      `addFirst` in interface `SequencedCollection<ArtifactRepository>`
    Parameters:
      `repository` - The repository to add.
    Since:
      1.0

  - ### addLast

    void addLast(ArtifactRepository repository)
    Adds a repository to this container, at the end of the repository sequence.
    Specified by:
      `addLast` in interface `List<ArtifactRepository>`
    Specified by:
      `addLast` in interface `SequencedCollection<ArtifactRepository>`
    Parameters:
      `repository` - The repository to add.
    Since:
      1.0

  - ### getByName

    ArtifactRepository getByName(String name) throws UnknownRepositoryException
    Locates an object by name, failing if there is no such object.

    This operation is eager and will cause the returned element to be realized.

    Specified by:
      `getByName` in interface `NamedDomainObjectCollection<ArtifactRepository>`
    Parameters:
      `name` - The object name
    Returns:
      The object with the given name. Never returns null.
    Throws:
      `UnknownRepositoryException`

  - ### getByName

    ArtifactRepository getByName(String name, @DelegatesTo(ArtifactRepository.class) Closure configureClosure) throws UnknownRepositoryException
    Locates an object by name, failing if there is no such object. The given configure closure is executed against the object before it is returned from this method. The object is passed to the closure as its delegate.

    This operation is eager and will cause the returned element to be realized.

    Specified by:
      `getByName` in interface `NamedDomainObjectCollection<ArtifactRepository>`
    Parameters:
      `name` - The object name
      `configureClosure` - The closure to use to configure the object.
    Returns:
      The object with the given name, after the configure closure has been applied to it. Never returns null.
    Throws:
      `UnknownRepositoryException`

  - ### getByName

    ArtifactRepository getByName(String name, Action<? super ArtifactRepository> configureAction) throws UnknownRepositoryException
    Locates an object by name, failing if there is no such object. The given configure action is executed against the object before it is returned from this method.

    This operation is eager and will cause the returned element to be realized.

    Specified by:
      `getByName` in interface `NamedDomainObjectCollection<ArtifactRepository>`
    Parameters:
      `name` - The object name
      `configureAction` - The action to use to configure the object.
    Returns:
      The object with the given name, after the configure action has been applied to it. Never returns null.
    Throws:
      `UnknownRepositoryException`

  - ### getAt

    ArtifactRepository getAt(String name) throws UnknownRepositoryException
    Locates an object by name, failing if there is no such object. This method is identical to `NamedDomainObjectCollection.getByName(String)`. You can call this method in your build script by using the groovy `[]` operator.

    This operation is eager and will cause the returned element to be realized.

    Specified by:
      `getAt` in interface `NamedDomainObjectCollection<ArtifactRepository>`
    Parameters:
      `name` - The object name
    Returns:
      The object with the given name. Never returns null.
    Throws:
      `UnknownRepositoryException`