org.gradle.plugin.repository

## Interface IvyPluginRepository

- All Superinterfaces:
    AuthenticationSupported, PluginRepository

      @Incubating
      public interface IvyPluginRepository
      extends PluginRepository, AuthenticationSupported

  Represents an Ivy repository which contains Gradle plugins.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `artifactPattern(String pattern)` Adds an independent pattern that will be used to locate artifact files in this repository.
    `URI` | `getUrl()` The base URL of this repository.
    `void` | `ivyPattern(String pattern)` Adds an independent pattern that will be used to locate ivy files in this repository.
    `void` | `layout(String layoutName)` Specifies the layout to use with this repository, based on the root url.
    `void` | `layout(String layoutName, Action<? extends RepositoryLayout> config)` Specifies how the items of the repository are organized.
    `void` | `setUrl(Object url)` Sets the base URL of this repository.
    `void` | `setUrl(URI url)` Sets the base URL of this repository.

    - ### Methods inherited from interface org.gradle.api.artifacts.repositories.AuthenticationSupported

      `authentication, credentials, credentials, getAuthentication, getCredentials, getCredentials`

- - ### Method Detail

    - #### getUrl

          @Nullable
          URI getUrl()

      The base URL of this repository. This URL is used to find Gradle plugins.
      Returns:
        The URL.

    - #### setUrl

          void setUrl(URI url)

      Sets the base URL of this repository.
      Parameters:
        `url` - The base URL.
      Since:
        4.0

    - #### setUrl

          void setUrl(Object url)

      Sets the base URL of this repository. This URL is used to find Gradle plugins.

      The provided value is evaluated relative to the build's directory. This means, for example, you can pass in a `File` object, or a relative path to be evaluated relative to the directory of the `settings.gradle` file in which this repository is declared.

      Parameters:
        `url` - The base URL.

    - #### artifactPattern

          void artifactPattern(String pattern)

      Adds an independent pattern that will be used to locate artifact files in this repository. This pattern will be used to locate ivy files as well, unless a specific ivy pattern is supplied via `ivyPattern(String)`. If this pattern is not a fully-qualified URL, it will be interpreted as a file relative to the project directory. It is not interpreted relative the URL specified in `setUrl(Object)`. Patterns added in this way will be in addition to any layout-based patterns added via `setUrl(java.net.URI)`.
      Parameters:
        `pattern` - The artifact pattern.
      Since:
        4.0

    - #### ivyPattern

          void ivyPattern(String pattern)

      Adds an independent pattern that will be used to locate ivy files in this repository. If this pattern is not a fully-qualified URL, it will be interpreted as a file relative to the project directory. It is not interpreted relative the URL specified in `setUrl(Object)`. Patterns added in this way will be in addition to any layout-based patterns added via `setUrl(java.net.URI)`.
      Parameters:
        `pattern` - The ivy pattern.
      Since:
        4.0

    - #### layout

          void layout(String layoutName)

      Specifies the layout to use with this repository, based on the root url. See `layout(String, Action)`.
      Parameters:
        `layoutName` - The name of the layout to use.
      Since:
        4.0

    - #### layout

          void layout(String layoutName,
                    Action<? extends RepositoryLayout> config)

      Specifies how the items of the repository are organized.

      The layout is configured with the supplied closure.

      Recognised values are as follows:

      #### 'gradle'

      A Repository Layout that applies the following patterns:

      - Artifacts: `$baseUri/"[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier])(.[ext])"`
      - Ivy: `$baseUri/"[organisation]/[module]/[revision]/ivy-[revision].xml"`

      #### 'maven'

      A Repository Layout that applies the following patterns:

      - Artifacts: `$baseUri/"[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier])(.[ext])"`
      - Ivy: `$baseUri/"[organisation]/[module]/[revision]/ivy-[revision].xml"`

      Following the Maven convention, the 'organisation' value is further processed by replacing '.' with '/'.

      #### 'ivy'

      A Repository Layout that applies the following patterns:

      - Artifacts: `$baseUri/"[organisation]/[module]/[revision]/[type]s/[artifact](.[ext])"`
      - Ivy: `$baseUri/"[organisation]/[module]/[revision]/[type]s/[artifact](.[ext])"`

      #### 'pattern'

      A repository layout that allows custom patterns to be defined. eg:

           repositories {
               ivy {
                   layout 'pattern' , {
                       artifact '[module]/[revision]/[artifact](.[ext])'
                       ivy '[module]/[revision]/ivy.xml'
                   }
               }
           }

      The available pattern tokens are listed as part of Ivy's Main Concepts documentation.

      Parameters:
        `layoutName` - The name of the layout to use.
        `config` - The action used to configure the layout.
      Since:
        4.0