# Interface VersionControlRepository

public interface VersionControlRepository
Represents the details about a particular VCS repository that contains a build that produces zero or more components that can be used during dependency resolution.

To make a repository definition useful, call the `producesModule(String)` method for each group and module name that is produced by the build in the repository. When resolving a dependency that matches the group and module name, Gradle will look for a matching version in the repository and if present will check out the source and build the binaries from that source.

Since:
  4.10

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getRootDir()`
  Returns the relative path to the root of the build within the repository.
  `void`
  `plugins(Action<? super InjectedPluginDependencies> configuration)`
  Defines the plugins to be injected into the build.
  `void`
  `producesModule(String module)`
  Declares that this repository produces (or may produce) component with the given group and module names.
  `void`
  `setRootDir(String rootDir)`
  Sets the relative path to the root of the build within the repository.

- ## Method Details

  - ### producesModule

    void producesModule(String module)
    Declares that this repository produces (or may produce) component with the given group and module names.
    Parameters:
      `module` - The module identity, in "group:module" format.

  - ### getRootDir

    String getRootDir()
    Returns the relative path to the root of the build within the repository.

    Defaults to an empty relative path, meaning the root of the repository.

    Returns:
      the root directory of the build, relative to the root of this repository.

  - ### setRootDir

    void setRootDir(String rootDir)
    Sets the relative path to the root of the build within the repository. Use an empty string to refer to the root of the repository.
    Parameters:
      `rootDir` - The root directory of the build, relative to the root of this repository.

  - ### plugins

    void plugins(Action<? super InjectedPluginDependencies> configuration)
    Defines the plugins to be injected into the build.

    Currently, plugins must be located in the calling build's `buildSrc` project.

    Parameters:
      `configuration` - the configuration action for adding injected plugins
    Since:
      4.6