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.
 
  • Constructor Details

    • ScalaRuntime

      public ScalaRuntime(Project project)
  • 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
    • findScalaJar

      @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
    • getScalaVersion

      @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