# Class ScalaRuntime

java.lang.Object
org.gradle.api.tasks.ScalaRuntime

public abstract class ScalaRuntime extends Object
Provides information related to the Scala runtime(s) used in a project. Added by the `org.gradle.api.plugins.scala.ScalaBasePlugin` as a project extension named `scalaRuntime`.

Example usage:

        plugins {
            id 'scala'
        }

        repositories {
            mavenCentral()
        }

        dependencies {
            implementation "org.scala-lang:scala-library:2.10.1"
        }

        def scalaClasspath = scalaRuntime.inferScalaClasspath(configurations.compileClasspath)
        // The returned class path can be used to configure the 'scalaClasspath' property of tasks
        // such as 'ScalaCompile' or 'ScalaDoc', or to execute these and other Scala tools directly.

Since:
  1.6

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ScalaRuntime(Project project)`
  Creates a new `ScalaRuntime`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `@Nullable File`
  `findScalaJar(Iterable<File> classpath, String appendix)`
  Searches the specified class path for a Scala Jar file (scala-compiler, scala-library, scala-jdbc, etc.) with the specified appendix (compiler, library, jdbc, etc.).
  `@Nullable String`
  `getScalaVersion(File scalaJar)`
  Determines the version of a Scala Jar file (scala-compiler, scala-library, scala-jdbc, etc.).
  `FileCollection`
  `inferScalaClasspath(Iterable<File> classpath)`
  Searches the specified class path for a 'scala-library' Jar, and returns a class path containing a corresponding (same version) 'scala-compiler' Jar and its dependencies.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ScalaRuntime

    public ScalaRuntime(Project project)
    Creates a new `ScalaRuntime`.
    Since:
      1.6

- ## Method Details

  - ### inferScalaClasspath

    public FileCollection inferScalaClasspath(Iterable<File> classpath)
    Searches the specified class path for a 'scala-library' Jar, and returns a class path containing a corresponding (same version) 'scala-compiler' Jar and its dependencies.

    The returned class path may be empty, or may fail to resolve when asked for its contents.

    Parameters:
      `classpath` - a class path containing a 'scala-library' Jar
    Returns:
      a class path containing a corresponding 'scala-compiler' Jar and its dependencies
    Since:
      1.6

  - ### findScalaJar

    public @Nullable File findScalaJar(Iterable<File> classpath, String appendix)
    Searches the specified class path for a Scala Jar file (scala-compiler, scala-library, scala-jdbc, etc.) with the specified appendix (compiler, library, jdbc, etc.). If no such file is found, `null` is returned.
    Parameters:
      `classpath` - the class path to search
      `appendix` - the appendix to search for
    Returns:
      a Scala Jar file with the specified appendix
    Since:
      1.6

  - ### getScalaVersion

    public @Nullable String getScalaVersion(File scalaJar)
    Determines the version of a Scala Jar file (scala-compiler, scala-library, scala-jdbc, etc.). If the version cannot be determined, or the file is not a Scala Jar file, `null` is returned.

    Implementation note: The version is determined by parsing the file name, which is expected to match the pattern 'scala-[component]-[version].jar'.

    Parameters:
      `scalaJar` - a Scala Jar file
    Returns:
      the version of the Scala Jar file
    Since:
      1.6