Interface MutableVersionConstraint

All Superinterfaces:
Describable, VersionConstraint

@Incubating 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 Details

    • 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