Class 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.
     
    • 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