scala:compile

Full name:

net.alchim31.maven:scala-maven-plugin:4.8.1:compile

Description:

Compiles a directory of Scala source. Corresponds roughly to the compile goal of the maven-compiler-plugin

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: compile.
  • The goal is thread-safe and supports parallel builds.
  • Binds by default to the lifecycle phase: compile.

Required Parameters

Name Type Since Description
<displayCmd> boolean - Display the command line called ? (property 'maven.scala.displayCmd' replaced by 'displayCmd')
Default value is: false.
User property is: displayCmd.

Optional Parameters

Name Type Since Description
<additionalDependencies> Dependency[] - Additional dependencies to be added to the classpath. This can be useful in situations where a dependency is needed at compile time, but should not be treated as a dependency in the published POM.
User property is: additionalDependencies.
<addJavacArgs> String - Alternative method for specifying javac arguments (when using incremental compiler). Can be used from command line with -DaddJavacArgs=arg1|arg2|arg3|... rather than in pom.xml.
User property is: addJavacArgs.
<addScalacArgs> String - Additional parameter to use to call the main class. Use this parameter only from command line ("-DaddScalacArgs=arg1|arg2|arg3|..."), not from pom.xml. To define compiler arguments in pom.xml see the "args" parameter.
User property is: addScalacArgs.
<analysisCacheFile> File - Analysis cache file for incremental recompilation.
Default value is: ${project.build.directory}/analysis/compile.
User property is: analysisCacheFile.
<args> String[] - compiler additional arguments
<checkMultipleScalaVersions> boolean - Check if every dependencies use the same version of scala-library or scala.compat.version.
Default value is: true.
User property is: maven.scala.checkConsistency.
<classpath> Classpath - Deprecated. List of directories or jars to add to the classpath. @Deprecated Use additionalDependencies instead.
User property is: classpath.
<compileOrder> CompileOrder - Compile order for Scala and Java sources for sbt incremental compile.

Can be Mixed, JavaThenScala, or ScalaThenJava.


Default value is: Mixed.
User property is: compileOrder.
<compilerPlugins> BasicArtifact[] - Compiler plugin dependencies to use when compiling. ex:
<compilerPlugins>
  <compilerPlugin>
    <groupId>my.scala.plugin</groupId>
    <artifactId>amazingPlugin</artifactId>
    <version>1.0-SNAPSHOT</version>
  </compilerPlugin>
</compilerPlugins>

<dependencies> BasicArtifact[] - Additional dependencies/jar to add to classpath to run "scalaClassName" (scope and optional field not supported) ex :
   <dependencies>
     <dependency>
       <groupId>org.scala-tools</groupId>
       <artifactId>scala-compiler-addon</artifactId>
       <version>1.0-SNAPSHOT</version>
     </dependency>
   </dependencies>

<encoding> String - The -encoding argument for the Java compiler. (when using incremental compiler).
Default value is: UTF-8.
User property is: project.build.sourceEncoding.
<excludes> Set<String> - A list of exclusion filters for the compiler. ex :
   <excludes>
     <exclude>SomeBadFile.scala</exclude>
   </excludes>

<failOnMultipleScalaVersions> boolean - Determines if a detection of multiple scala versions in the dependencies will cause the build to fail.
Default value is: false.
<forceUseArgFile> boolean - Force the use of an external ArgFile to run any forked process.
Default value is: false.
<fork> boolean - Forks the execution of scalac into a separate process.
Default value is: true.
<includes> Set<String> - A list of inclusion filters for the compiler. ex :
   <includes>
     <include>SomeFile.scala</include>
   </includes>

<javacArgs> String[] - Arguments for javac (when using incremental compiler).
User property is: javacArgs.
<javacGenerateDebugSymbols> boolean - Whether to instruct javac to generate debug symbols (when using incremental compiler)
See also: ://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#debug
Default value is: true.
User property is: javacGenerateDebugSymbols.
<jvmArgs> String[] - Jvm Arguments.
<notifyCompilation> boolean - notifyCompilation if true then print a message "path: compiling" for each root directory or files that will be compiled. Useful for debug, and for integration with Editor/IDE to reset markers only for compiled files.
Default value is: true.
User property is: notifyCompilation.
<outputDir> File - The directory in which to place compilation output
Default value is: ${project.build.outputDirectory}.
User property is: outputDir.
<pluginArtifacts> List<Artifact> - List of artifacts to run plugin
Default value is: ${plugin.artifacts}.
<recompileMode> ScalaCompilerSupport$RecompileMode - Recompile mode to use when sources were previously compiled and there is at least one change, see RecompileMode.
Default value is: incremental.
User property is: recompileMode.
<release> String - The --release argument for the Java compiler (when using incremental compiler), supported since Java9.
User property is: maven.compiler.release.
<scalaClassName> String - override the className (FQN) of the scala tool
User property is: maven.scala.className.
<scalaCompatVersion> String - Scala 's version to use to check binary compatibility (like suffix in artifactId of dependency). If it is defined then it is used to checkMultipleScalaVersions
User property is: scala.compat.version.
<scalaHome> String - Path to Scala installation to use instead of the artifact (define as dependencies).
User property is: scala.home.
<scalaOrganization> String - Organization/group ID of the Scala used in the project. Default value is 'org.scala-lang'. This is an advanced setting used for clones of the Scala Language. It should be disregarded in standard use cases.
Default value is: org.scala-lang.
User property is: scala.organization.
<scalaVersion> String - Scala 's version to use. (property 'maven.scala.version' replaced by 'scala.version')
User property is: scala.version.
<secondaryCacheDir> File - Location of the incremental compile will install compiled compiler bridge jars. Default is sbt's "~/.sbt/1.0/zinc/org.scala-sbt".
User property is: secondaryCacheDir.
<sendJavaToScalac> boolean - Enables/Disables sending java source to the scala compiler.
Default value is: true.
<skipMain> boolean - Set this to 'true' to bypass compilation of main sources. Its use is NOT RECOMMENDED, but quite convenient on occasion.
User property is: maven.main.skip.
<source> String - The -source argument for the Java compiler (when using incremental compiler).
User property is: maven.compiler.source.
<sourceDir> File - The directory which contains scala/java source files
Default value is: ${project.build.sourceDirectory}/../scala.
<target> String - The -target argument for the Java compiler (when using incremental compiler).
User property is: maven.compiler.target.
<useCanonicalPath> boolean - Should use CanonicalPath to normalize path (true => getCanonicalPath, false => getAbsolutePath)
See also: https://github.com/davidB/scala-maven-plugin/issues/50
Default value is: true.
User property is: maven.scala.useCanonicalPath.

Parameter Details

<additionalDependencies>

Additional dependencies to be added to the classpath. This can be useful in situations where a dependency is needed at compile time, but should not be treated as a dependency in the published POM.
  • Type: org.apache.maven.model.Dependency[]
  • Required: No
  • User Property: additionalDependencies

<addJavacArgs>

Alternative method for specifying javac arguments (when using incremental compiler). Can be used from command line with -DaddJavacArgs=arg1|arg2|arg3|... rather than in pom.xml.
  • Type: java.lang.String
  • Required: No
  • User Property: addJavacArgs

<addScalacArgs>

Additional parameter to use to call the main class. Use this parameter only from command line ("-DaddScalacArgs=arg1|arg2|arg3|..."), not from pom.xml. To define compiler arguments in pom.xml see the "args" parameter.
  • Type: java.lang.String
  • Required: No
  • User Property: addScalacArgs

<analysisCacheFile>

Analysis cache file for incremental recompilation.
  • Type: java.io.File
  • Required: No
  • User Property: analysisCacheFile
  • Default: ${project.build.directory}/analysis/compile

<args>

compiler additional arguments
  • Type: java.lang.String[]
  • Required: No

<checkMultipleScalaVersions>

Check if every dependencies use the same version of scala-library or scala.compat.version.
  • Type: boolean
  • Required: No
  • User Property: maven.scala.checkConsistency
  • Default: true

<classpath>

Deprecated. No reason given
List of directories or jars to add to the classpath. @Deprecated Use additionalDependencies instead.
  • Type: scala_maven.Classpath
  • Required: No
  • User Property: classpath

<compileOrder>

Compile order for Scala and Java sources for sbt incremental compile.

Can be Mixed, JavaThenScala, or ScalaThenJava.

  • Type: xsbti.compile.CompileOrder
  • Required: No
  • User Property: compileOrder
  • Default: Mixed

<compilerPlugins>

Compiler plugin dependencies to use when compiling. ex:
<compilerPlugins>
  <compilerPlugin>
    <groupId>my.scala.plugin</groupId>
    <artifactId>amazingPlugin</artifactId>
    <version>1.0-SNAPSHOT</version>
  </compilerPlugin>
</compilerPlugins>
  • Type: scala_maven.BasicArtifact[]
  • Required: No

<dependencies>

Additional dependencies/jar to add to classpath to run "scalaClassName" (scope and optional field not supported) ex :
   <dependencies>
     <dependency>
       <groupId>org.scala-tools</groupId>
       <artifactId>scala-compiler-addon</artifactId>
       <version>1.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
  • Type: scala_maven.BasicArtifact[]
  • Required: No

<displayCmd>

Display the command line called ? (property 'maven.scala.displayCmd' replaced by 'displayCmd')
  • Type: boolean
  • Required: Yes
  • User Property: displayCmd
  • Default: false

<encoding>

The -encoding argument for the Java compiler. (when using incremental compiler).
  • Type: java.lang.String
  • Required: No
  • User Property: project.build.sourceEncoding
  • Default: UTF-8

<excludes>

A list of exclusion filters for the compiler. ex :
   <excludes>
     <exclude>SomeBadFile.scala</exclude>
   </excludes>
  • Type: java.util.Set<java.lang.String>
  • Required: No

<failOnMultipleScalaVersions>

Determines if a detection of multiple scala versions in the dependencies will cause the build to fail.
  • Type: boolean
  • Required: No
  • Default: false

<forceUseArgFile>

Force the use of an external ArgFile to run any forked process.
  • Type: boolean
  • Required: No
  • Default: false

<fork>

Forks the execution of scalac into a separate process.
  • Type: boolean
  • Required: No
  • Default: true

<includes>

A list of inclusion filters for the compiler. ex :
   <includes>
     <include>SomeFile.scala</include>
   </includes>
  • Type: java.util.Set<java.lang.String>
  • Required: No

<javacArgs>

Arguments for javac (when using incremental compiler).
  • Type: java.lang.String[]
  • Required: No
  • User Property: javacArgs

<javacGenerateDebugSymbols>

Whether to instruct javac to generate debug symbols (when using incremental compiler)
See also: ://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#debug
  • Type: boolean
  • Required: No
  • User Property: javacGenerateDebugSymbols
  • Default: true

<jvmArgs>

Jvm Arguments.
  • Type: java.lang.String[]
  • Required: No

<notifyCompilation>

notifyCompilation if true then print a message "path: compiling" for each root directory or files that will be compiled. Useful for debug, and for integration with Editor/IDE to reset markers only for compiled files.
  • Type: boolean
  • Required: No
  • User Property: notifyCompilation
  • Default: true

<outputDir>

The directory in which to place compilation output
  • Type: java.io.File
  • Required: No
  • User Property: outputDir
  • Default: ${project.build.outputDirectory}

<pluginArtifacts>

List of artifacts to run plugin
  • Type: java.util.List<org.apache.maven.artifact.Artifact>
  • Required: No
  • Default: ${plugin.artifacts}

<recompileMode>

Recompile mode to use when sources were previously compiled and there is at least one change, see RecompileMode.
  • Type: scala_maven.ScalaCompilerSupport$RecompileMode
  • Required: No
  • User Property: recompileMode
  • Default: incremental

<release>

The --release argument for the Java compiler (when using incremental compiler), supported since Java9.
  • Type: java.lang.String
  • Required: No
  • User Property: maven.compiler.release

<scalaClassName>

override the className (FQN) of the scala tool
  • Type: java.lang.String
  • Required: No
  • User Property: maven.scala.className

<scalaCompatVersion>

Scala 's version to use to check binary compatibility (like suffix in artifactId of dependency). If it is defined then it is used to checkMultipleScalaVersions
  • Type: java.lang.String
  • Required: No
  • User Property: scala.compat.version

<scalaHome>

Path to Scala installation to use instead of the artifact (define as dependencies).
  • Type: java.lang.String
  • Required: No
  • User Property: scala.home

<scalaOrganization>

Organization/group ID of the Scala used in the project. Default value is 'org.scala-lang'. This is an advanced setting used for clones of the Scala Language. It should be disregarded in standard use cases.
  • Type: java.lang.String
  • Required: No
  • User Property: scala.organization
  • Default: org.scala-lang

<scalaVersion>

Scala 's version to use. (property 'maven.scala.version' replaced by 'scala.version')
  • Type: java.lang.String
  • Required: No
  • User Property: scala.version

<secondaryCacheDir>

Location of the incremental compile will install compiled compiler bridge jars. Default is sbt's "~/.sbt/1.0/zinc/org.scala-sbt".
  • Type: java.io.File
  • Required: No
  • User Property: secondaryCacheDir

<sendJavaToScalac>

Enables/Disables sending java source to the scala compiler.
  • Type: boolean
  • Required: No
  • Default: true

<skipMain>

Set this to 'true' to bypass compilation of main sources. Its use is NOT RECOMMENDED, but quite convenient on occasion.
  • Type: boolean
  • Required: No
  • User Property: maven.main.skip

<source>

The -source argument for the Java compiler (when using incremental compiler).
  • Type: java.lang.String
  • Required: No
  • User Property: maven.compiler.source

<sourceDir>

The directory which contains scala/java source files
  • Type: java.io.File
  • Required: No
  • Default: ${project.build.sourceDirectory}/../scala

<target>

The -target argument for the Java compiler (when using incremental compiler).
  • Type: java.lang.String
  • Required: No
  • User Property: maven.compiler.target

<useCanonicalPath>

Should use CanonicalPath to normalize path (true => getCanonicalPath, false => getAbsolutePath)
See also: https://github.com/davidB/scala-maven-plugin/issues/50
  • Type: boolean
  • Required: No
  • User Property: maven.scala.useCanonicalPath
  • Default: true