Package org.gradle.api.tasks

## Class ScalaRuntime

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

-     public abstract class ScalaRuntime
      extends java.lang.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.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ScalaRuntime​(Project project)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.io.File` | `findScalaJar​(java.lang.Iterable<java.io.File> classpath, java.lang.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.).
    `java.lang.String` | `getScalaVersion​(java.io.File scalaJar)` | Determines the version of a Scala Jar file (scala-compiler, scala-library, scala-jdbc, etc.).
    `FileCollection` | `inferScalaClasspath​(java.lang.Iterable<java.io.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 java.lang.Object

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

- - ### Constructor Detail

    - #### ScalaRuntime

          public ScalaRuntime​(Project project)

  - ### Method Detail

    - #### inferScalaClasspath

          public FileCollection inferScalaClasspath​(java.lang.Iterable<java.io.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

    - #### findScalaJar

          @Nullable
          public java.io.File findScalaJar​(java.lang.Iterable<java.io.File> classpath,
                                           java.lang.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

    - #### getScalaVersion

          @Nullable
          public java.lang.String getScalaVersion​(java.io.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