Package org.gradle.api.artifacts

## Interface MutableVersionConstraint

- All Superinterfaces:
    `Describable`, `VersionConstraint`

      public interface MutableVersionConstraint
      extends VersionConstraint

  A configurable version constraint. This is exposed to the build author, so that one can express more constraints on a module version.
  Since:
    4.4

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `String` | `getBranch()` | Returns the branch to select versions from.
    `void` | `prefer​(String version)` | Sets the preferred version of this module.
    `void` | `reject​(String... versions)` | Declares a list of rejected versions.
    `void` | `rejectAll()` | Rejects all versions of this component.
    `void` | `require​(String version)` | Sets the required version of this module.
    `void` | `setBranch​(String branch)` | Specifies the branch to select versions from.
    `void` | `strictly​(String version)` | Sets the version as strict.

    - ### Methods inherited from interface org.gradle.api.Describable

      `getDisplayName`

    - ### Methods inherited from interface org.gradle.api.artifacts.VersionConstraint

      `getPreferredVersion, getRejectedVersions, getRequiredVersion, getStrictVersion`

- - ### Method Detail

    - #### getBranch

          @Nullable
          String getBranch()

      Returns the branch to select versions from. When not `null`, select only versions that were built from the given branch.
      Specified by:
        `getBranch` in interface `VersionConstraint`
      Since:
        4.6

    - #### setBranch

          void setBranch​(@Nullable
                         String branch)

      Specifies the branch to select versions from.
      Parameters:
        `branch` - The branch, possibly null.
      Since:
        4.6

    - #### require

          void require​(String version)

      Sets the required version of this module.

      Implies that the selected version cannot be lower than what `require` accepts but could be higher through conflict resolution, even if higher has an exclusive higher bound. This is what a direct version on a dependency translates to. This term supports dynamic versions.

      This will override a previous `strictly` declaration.

      Parameters:
        `version` - the required version of this module
      Since:
        5.0

    - #### prefer

          void prefer​(String version)

      Sets the preferred version of this module.

      This is a very soft version declaration. It applies only if there is no stronger non dynamic opinion on a version for the module. This term does not support dynamic versions.

      This can complement a `strictly` or `require` indication.

      Parameters:
        `version` - the preferred version of this module

    - #### strictly

          void strictly​(String version)

      Sets the version as strict.

      Any version not matched by this version notation will be excluded. This is the strongest version declaration. It will cause dependency resolution to fail if no version acceptable by this clause can be selected. This term supports dynamic versions.

      This will override a previous `require` declaration.

      Parameters:
        `version` - the strict version to be used for this module

    - #### reject

          void reject​(String... versions)

      Declares a list of rejected versions. If such a version is found during dependency resolution, it will not be selected.
      Parameters:
        `versions` - the rejected versions
      Since:
        4.5

    - #### rejectAll

          void rejectAll()

      Rejects all versions of this component. Can be used to declare that a component is incompatible with another (typically, cannot have both a 2 different implementations of the same API).
      Since:
        4.5