# Class AbstractScalaCompile

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
org.gradle.api.internal.ConventionTask
org.gradle.api.tasks.SourceTask
org.gradle.api.tasks.compile.AbstractCompile
org.gradle.language.scala.tasks.AbstractScalaCompile

All Implemented Interfaces:
  `Comparable<Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.IConventionAware, org.gradle.api.internal.TaskInternal, org.gradle.api.internal.tasks.compile.HasCompileOptions, Named, ExtensionAware, Task, PatternFilterable, Configurable<Task>`

Direct Known Subclasses:
  `ScalaCompile`

@DisableCachingByDefault(because="Abstract super-class, not to be instantiated directly") public abstract class AbstractScalaCompile extends AbstractCompile implements org.gradle.api.internal.tasks.compile.HasCompileOptions
An abstract Scala compile task sharing common functionality for compiling scala.

Since:
  2.3

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final Logger`
  `LOGGER`
  Returns the logger.

  ### Fields inherited from interface Task

  `TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `AbstractScalaCompile()`
  Constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `compile()`
  Compile.
  `protected org.gradle.api.internal.tasks.scala.ScalaJavaJointCompileSpec`
  `createSpec()`
  Create spec.
  `abstract ConfigurableFileCollection`
  `getAnalysisFiles()`
  Source of analysis mapping files for incremental Scala compilation.
  `abstract RegularFileProperty`
  `getAnalysisMappingFile()`
  Analysis mapping file.
  `protected abstract org.gradle.internal.classpath.CachedClasspathTransformer`
  `getCachedClasspathTransformer()`
  `protected abstract org.gradle.language.base.internal.compile.Compiler<org.gradle.api.internal.tasks.scala.ScalaJavaJointCompileSpec>`
  `getCompiler(org.gradle.api.internal.tasks.scala.ScalaJavaJointCompileSpec spec)`
  Returns the compiler.
  `protected abstract org.gradle.internal.file.Deleter`
  `getDeleter()`
  `abstract Property<JavaLauncher>`
  `getJavaLauncher()`
  The toolchain `JavaLauncher` to use for executing the Scala compiler.
  `protected abstract JavaToolchainService`
  `getJavaToolchainService()`
  `protected String`
  `getJvmVersion()`
  The Java major version of the JVM the Scala compiler is running on.
  `protected abstract ObjectFactory`
  `getObjectFactory()`
  `abstract CompileOptions`
  `getOptions()`
  Returns the Java compilation options.
  `protected abstract ProjectLayout`
  `getProjectLayout()`
  `BaseScalaCompileOptions`
  `getScalaCompileOptions()`
  Returns the Scala compilation options.
  `FileTree`
  `getSource()`
  Returns the source for this task, after the include and exclude patterns have been applied.
  `protected JavaInstallationMetadata`
  `getToolchain()`
  Returns the toolchain.

  ### Methods inherited from class AbstractCompile

  `getClasspath, getDestinationDirectory, getSourceCompatibility, getTargetCompatibility, setClasspath, setSourceCompatibility, setTargetCompatibility`

  ### Methods inherited from class SourceTask

  `exclude, exclude, exclude, exclude, getExcludes, getIncludes, getPatternSet, getPatternSetFactory, include, include, include, include, setExcludes, setIncludes, setSource, setSource, source`

  ### Methods inherited from class org.gradle.api.internal.ConventionTask

  `conventionMapping, conventionMapping, getConventionMapping`

  ### Methods inherited from class DefaultTask

  `compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

  ### Methods inherited from class org.gradle.api.internal.AbstractTask

  `acceptServiceReferences, appendParallelSafeAction, doNotTrackState, doNotTrackStateIf, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getLoggingManager, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, service, setImpliesSubProjects`

  ### Methods inherited from class Object

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

  ### Methods inherited from interface Task

  `doNotTrackState, notCompatibleWithConfigurationCache, service`

- ## Field Details

  - ### LOGGER

    protected static final Logger LOGGER
    Returns the logger.
    Since:
      2.3

- ## Constructor Details

  - ### AbstractScalaCompile

    @Incubating protected AbstractScalaCompile()
    Constructor.
    Since:
      7.6

- ## Method Details

  - ### getScalaCompileOptions

    public BaseScalaCompileOptions getScalaCompileOptions()
    Returns the Scala compilation options.
    Since:
      2.3

  - ### getOptions

    public abstract CompileOptions getOptions()
    Returns the Java compilation options.
    Specified by:
      `getOptions` in interface `org.gradle.api.internal.tasks.compile.HasCompileOptions`

  - ### getCompiler

    protected abstract org.gradle.language.base.internal.compile.Compiler<org.gradle.api.internal.tasks.scala.ScalaJavaJointCompileSpec> getCompiler(org.gradle.api.internal.tasks.scala.ScalaJavaJointCompileSpec spec)
    Returns the compiler.
    Since:
      2.3

  - ### compile

    public void compile()
    Compile.
    Since:
      2.3

  - ### getJavaLauncher

    public abstract Property<JavaLauncher> getJavaLauncher()
    The toolchain `JavaLauncher` to use for executing the Scala compiler.
    Returns:
      the java launcher property
    Since:
      7.2

  - ### getToolchain

    @Internal protected JavaInstallationMetadata getToolchain()
    Returns the toolchain.
    Since:
      7.3

  - ### createSpec

    protected org.gradle.api.internal.tasks.scala.ScalaJavaJointCompileSpec createSpec()
    Create spec.
    Since:
      2.3

  - ### getSource

    @PathSensitive(RELATIVE) public FileTree getSource()
    Returns the source for this task, after the include and exclude patterns have been applied. Ignores source files which do not exist.

    The `PathSensitivity` for the sources is configured to be `PathSensitivity.ABSOLUTE`. If your sources are less strict, please change it accordingly by overriding this method in your subclass.

    Overrides:
      `getSource` in class `SourceTask`
    Returns:
      The source.

  - ### getJvmVersion

    @Input protected String getJvmVersion()
    The Java major version of the JVM the Scala compiler is running on.
    Since:
      4.6

  - ### getAnalysisFiles

    @Internal public abstract ConfigurableFileCollection getAnalysisFiles()
    Source of analysis mapping files for incremental Scala compilation.

    An analysis mapping file is produced by each `AbstractScalaCompile` task. This file contains paths to the jar containing compiled Scala classes and the Scala compiler analysis file for that jar. The Scala compiler uses this information to perform incremental compilation of Scala sources.

    Returns:
      collection of analysis mapping files.
    Since:
      4.10.1

  - ### getAnalysisMappingFile

    @LocalState public abstract RegularFileProperty getAnalysisMappingFile()
    Analysis mapping file.
    Since:
      4.10.1
    See Also:
      - `getAnalysisFiles()`

  - ### getDeleter

    @Inject protected abstract org.gradle.internal.file.Deleter getDeleter()

  - ### getProjectLayout

    @Inject protected abstract ProjectLayout getProjectLayout()

  - ### getObjectFactory

    @Inject protected abstract ObjectFactory getObjectFactory()

  - ### getJavaToolchainService

    @Inject protected abstract JavaToolchainService getJavaToolchainService()

  - ### getCachedClasspathTransformer

    @Inject protected abstract org.gradle.internal.classpath.CachedClasspathTransformer getCachedClasspathTransformer()