Package: org.gradle.api.tasks

## [Java] Class ScalaRuntime

- org.gradle.api.tasks.ScalaRuntime

- 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:

           apply plugin: "scala"

           repositories {
               mavenCentral()
           }

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

           def scalaClasspath = scalaRuntime.inferScalaClasspath(configurations.compile)
           // 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 and description
    `ScalaRuntime (Project project)`

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `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.).
    `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.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Constructor Detail

    - #### public ScalaRuntime(Project project)

  - ### Method Detail

    - #### @Nullable public 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

    - #### @Nullable public 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

    - #### 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.

      If the (deprecated) 'scalaTools' configuration is explicitly configured, no repository is declared for the project, no 'scala-library' Jar is found on the specified class path, or its version cannot be determined, a class path with the contents of the 'scalaTools' configuration is returned.

      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