Package scala_maven
Class ScalaMojoSupport
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- scala_maven.ScalaMojoSupport
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
- Direct Known Subclasses:
ScalaConsoleMojo
,ScalaHelpMojo
,ScalaRunMojo
,ScalaScriptMojo
,ScalaSourceMojoSupport
public abstract class ScalaMojoSupport extends org.apache.maven.plugin.AbstractMojo
-
-
Field Summary
Fields Modifier and Type Field Description private VersionNumber
_scalaVersionN
protected java.lang.String
addJavacArgs
Alternative method for specifying javac arguments (when using incremental compiler).protected java.lang.String
addScalacArgs
Additional parameter to use to call the main class.protected java.lang.String[]
args
compiler additional argumentsprivate org.apache.maven.artifact.resolver.ArtifactCollector
artifactCollector
The artifact collector to use.private org.apache.maven.artifact.factory.ArtifactFactory
artifactFactory
The artifact factory to use.private org.apache.maven.artifact.metadata.ArtifactMetadataSource
artifactMetadataSource
The artifact metadata source to use.protected boolean
checkMultipleScalaVersions
Check if every dependencies use the same version of scala-library or scala.compat.version.protected BasicArtifact[]
compilerPlugins
Compiler plugin dependencies to use when compiling.protected BasicArtifact[]
dependencies
Additional dependencies/jar to add to classpath to run "scalaClassName" (scope and optional field not supported) ex :private org.apache.maven.shared.dependency.graph.DependencyGraphBuilder
dependencyTreeBuilder
The dependency tree builder to use.boolean
displayCmd
Display the command line called ? (property 'maven.scala.displayCmd' replaced by 'displayCmd')protected java.lang.String
encoding
The -encoding argument for the Java compiler.protected org.apache.maven.repository.RepositorySystem
factory
Used to look up Artifacts in the remote repository.protected boolean
failOnMultipleScalaVersions
Determines if a detection of multiple scala versions in the dependencies will cause the build to fail.protected boolean
forceUseArgFile
Force the use of an external ArgFile to run any forked process.protected boolean
fork
Forks the execution of scalac into a separate process.protected static java.lang.String
JAR
ConstantString
for "jar".protected java.lang.String[]
javacArgs
Arguments for javac (when using incremental compiler).protected boolean
javacGenerateDebugSymbols
Whether to instruct javac to generate debug symbols (when using incremental compiler)protected java.lang.String[]
jvmArgs
Jvm Arguments.protected org.apache.maven.artifact.repository.ArtifactRepository
localRepo
Location of the local repository.private org.apache.maven.artifact.repository.ArtifactRepository
localRepository
The artifact repository to use.protected org.apache.maven.project.MavenProjectBuilder
mavenProjectBuilder
Artifact factory, needed to download source jars.private java.util.List<org.apache.maven.artifact.Artifact>
pluginArtifacts
List of artifacts to run pluginprotected static java.lang.String
POM
ConstantString
for "pom".protected org.apache.maven.project.MavenProject
project
The maven project.protected java.util.List<org.apache.maven.project.MavenProject>
reactorProjects
Contains the full list of projects in the reactor.protected java.util.List<org.apache.maven.artifact.repository.ArtifactRepository>
remoteRepos
List of Remote Repositories used by the resolverprotected org.apache.maven.artifact.resolver.ArtifactResolver
resolver
Used to look up Artifacts in the remote repository.static java.lang.String
SCALA_COMPILER_ARTIFACTID
static java.lang.String
SCALA_LIBRARY_ARTIFACTID
protected java.lang.String
scalaClassName
className (FQN) of the scala tool to provide asprivate java.lang.String
scalaCompatVersion
Scala 's version to use to check binary compatibility (like suffix in artifactId of dependency).private java.lang.String
scalaHome
Path to Scala installation to use instead of the artifact (define as dependencies).private java.lang.String
scalaOrganization
Organization/group ID of the Scala used in the project.private java.lang.String
scalaVersion
Scala 's version to use.protected org.apache.maven.execution.MavenSession
session
The Maven Session Objectprotected java.lang.String
source
The -source argument for the Java compiler (when using incremental compiler).protected java.lang.String
target
The -target argument for the Java compiler (when using incremental compiler).protected org.apache.maven.toolchain.ToolchainManager
toolchainManager
The toolchain manager to use.protected boolean
useCanonicalPath
Should use CanonicalPath to normalize path (true => getCanonicalPath, false => getAbsolutePath)
-
Constructor Summary
Constructors Constructor Description ScalaMojoSupport()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
addCompilerPluginOptions(JavaMainCaller scalac)
Adds appropriate compiler plugins to the scalac command.protected void
addCompilerToClasspath(java.util.Set<java.lang.String> classpath)
protected void
addLibraryToClasspath(java.util.Set<java.lang.String> classpath)
void
addToClasspath(java.lang.String groupId, java.lang.String artifactId, java.lang.String version, java.lang.String classifier, java.util.Set<java.lang.String> classpath, boolean addDependencies)
added for classifier support.void
addToClasspath(java.lang.String groupId, java.lang.String artifactId, java.lang.String version, java.util.Set<java.lang.String> classpath)
void
addToClasspath(java.lang.String groupId, java.lang.String artifactId, java.lang.String version, java.util.Set<java.lang.String> classpath, boolean addDependencies)
protected void
addToClasspath(org.apache.maven.artifact.Artifact artifact, java.util.Set<java.lang.String> classpath, boolean addDependencies)
private void
checkArtifactForScalaVersion(VersionNumber requiredScalaVersion, org.apache.maven.shared.dependency.graph.DependencyNode rootNode)
Visits a node (and all dependencies) to see if it contains duplicate scala versionsprivate void
checkCorrectVersionsOfScalaLibrary(java.lang.String scalaDefVersion)
this method checks to see if there are multiple versions of the scala libraryprotected void
checkScalaVersion()
private org.apache.maven.artifact.resolver.ArtifactResolutionRequest
createArtifactResolutionRequest(org.apache.maven.artifact.Artifact artifact, org.apache.maven.artifact.resolver.filter.ArtifactFilter collectionFilter, org.apache.maven.artifact.resolver.filter.ArtifactFilter resolutionFilter, java.util.List<org.apache.maven.artifact.repository.ArtifactRepository> remoteRepositories, org.apache.maven.artifact.repository.ArtifactRepository localRepository)
Create aArtifactResolutionRequest
.private org.apache.maven.shared.dependency.graph.filter.DependencyNodeFilter
createScalaDistroDependencyFilter()
protected abstract void
doExecute()
void
execute()
protected VersionNumber
findScalaVersion()
private java.lang.String
findScalaVersionFromDependencies()
protected java.lang.String
findVersionFromDependencies(java.lang.String groupId, java.lang.String artifactId)
protected java.lang.String
findVersionFromPluginArtifacts(java.lang.String groupId, java.lang.String artifactId)
protected java.util.Set<org.apache.maven.artifact.Artifact>
getAllDependencies(java.lang.String groupId, java.lang.String artifactId, java.lang.String version)
protected java.io.File
getArtifactJar(java.lang.String groupId, java.lang.String artifactId, java.lang.String version)
protected java.io.File
getArtifactJar(java.lang.String groupId, java.lang.String artifactId, java.lang.String version, java.lang.String classifier)
protected java.util.List<java.io.File>
getCompilerDependencies()
protected java.io.File
getCompilerJar()
protected java.util.List<java.lang.String>
getCompilerPluginOptions()
private java.util.Set<java.lang.String>
getCompilerPlugins()
Retrieves a list of paths to scala compiler plugins.protected java.util.List<org.apache.maven.model.Dependency>
getDependencies()
protected JavaMainCaller
getEmptyScalaCommand(java.lang.String mainClass)
Get aJavaMainCaller
used invoke a Java process.protected JavaMainCaller
getEmptyScalaCommand(java.lang.String mainClass, boolean forkOverride)
Get aJavaMainCaller
used invoke a Java process.protected java.util.List<java.lang.String>
getJavacOptions()
protected java.io.File
getLibraryJar()
protected java.io.File
getPluginArtifactJar(java.lang.String groupId, java.lang.String artifactId, java.lang.String version)
protected java.io.File
getPluginArtifactJar(java.lang.String groupId, java.lang.String artifactId, java.lang.String version, java.lang.String classifier)
protected JavaMainCaller
getScalaCommand()
protected JavaMainCaller
getScalaCommand(boolean forkOverride, java.lang.String mainClass)
Get aJavaMainCaller
used invoke a Java process.protected java.util.List<java.lang.String>
getScalaOptions()
java.lang.String
getScalaOrganization()
private java.lang.String
getToolClasspath()
protected boolean
isJavaSupportedByCompiler()
protected java.util.Set<org.apache.maven.artifact.Artifact>
resolveArtifactDependencies(org.apache.maven.artifact.Artifact artifact)
This method resolves all transitive dependencies of an artifact.protected java.util.Set<org.apache.maven.artifact.Artifact>
resolveDependencyArtifacts(org.apache.maven.artifact.Artifact artifact, org.apache.maven.artifact.resolver.filter.ArtifactFilter collectionFilter, org.apache.maven.artifact.resolver.filter.ArtifactFilter resolutionFilter)
This method resolves all transitive dependencies of an artifact.protected java.util.Set<org.apache.maven.artifact.Artifact>
resolveDependencyArtifacts(org.apache.maven.artifact.Artifact artifact, org.apache.maven.artifact.resolver.filter.ArtifactFilter collectionFilter, org.apache.maven.artifact.resolver.filter.ArtifactFilter resolutionFilter, java.util.List<org.apache.maven.artifact.repository.ArtifactRepository> remoteRepositories, org.apache.maven.artifact.repository.ArtifactRepository localRepository)
This method resolves all transitive dependencies of an artifact.protected org.apache.maven.artifact.Artifact
scalaCompilerArtifact(java.lang.String scalaVersion)
Constructs anArtifact
for Scala Compiler.
-
-
-
Field Detail
-
SCALA_LIBRARY_ARTIFACTID
public static final java.lang.String SCALA_LIBRARY_ARTIFACTID
- See Also:
- Constant Field Values
-
SCALA_COMPILER_ARTIFACTID
public static final java.lang.String SCALA_COMPILER_ARTIFACTID
- See Also:
- Constant Field Values
-
POM
protected static final java.lang.String POM
ConstantString
for "pom". Used to specify the Maven POM artifact type.- See Also:
- Constant Field Values
-
JAR
protected static final java.lang.String JAR
ConstantString
for "jar". Used to specify the Maven JAR artifact type.- See Also:
- Constant Field Values
-
project
@Parameter(property="project", required=true, readonly=true) protected org.apache.maven.project.MavenProject project
The maven project.
-
session
@Parameter(property="session", required=true, readonly=true) protected org.apache.maven.execution.MavenSession session
The Maven Session Object
-
reactorProjects
@Parameter(defaultValue="${reactorProjects}", readonly=true, required=true) protected java.util.List<org.apache.maven.project.MavenProject> reactorProjects
Contains the full list of projects in the reactor.
-
factory
@Component protected org.apache.maven.repository.RepositorySystem factory
Used to look up Artifacts in the remote repository.
-
resolver
@Component protected org.apache.maven.artifact.resolver.ArtifactResolver resolver
Used to look up Artifacts in the remote repository.
-
localRepo
@Parameter(property="localRepository", readonly=true, required=true) protected org.apache.maven.artifact.repository.ArtifactRepository localRepo
Location of the local repository.
-
remoteRepos
@Parameter(property="project.remoteArtifactRepositories", readonly=true, required=true) protected java.util.List<org.apache.maven.artifact.repository.ArtifactRepository> remoteRepos
List of Remote Repositories used by the resolver
-
dependencies
@Parameter protected BasicArtifact[] 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>
-
compilerPlugins
@Parameter protected BasicArtifact[] 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>
-
jvmArgs
@Parameter protected java.lang.String[] jvmArgs
Jvm Arguments.
-
args
@Parameter protected java.lang.String[] args
compiler additional arguments
-
addScalacArgs
@Parameter(property="addScalacArgs") protected java.lang.String 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.
-
scalaClassName
@Parameter(required=true, property="maven.scala.className", defaultValue="scala.tools.nsc.Main") protected java.lang.String scalaClassName
className (FQN) of the scala tool to provide as
-
scalaVersion
@Parameter(property="scala.version") private java.lang.String scalaVersion
Scala 's version to use. (property 'maven.scala.version' replaced by 'scala.version')
-
scalaOrganization
@Parameter(property="scala.organization", defaultValue="org.scala-lang") private java.lang.String 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.
-
scalaCompatVersion
@Parameter(property="scala.compat.version") private java.lang.String 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
-
scalaHome
@Parameter(property="scala.home") private java.lang.String scalaHome
Path to Scala installation to use instead of the artifact (define as dependencies).
-
javacArgs
@Parameter(property="javacArgs") protected java.lang.String[] javacArgs
Arguments for javac (when using incremental compiler).
-
javacGenerateDebugSymbols
@Parameter(property="javacGenerateDebugSymbols", defaultValue="true") protected boolean javacGenerateDebugSymbols
Whether to instruct javac to generate debug symbols (when using incremental compiler)
-
addJavacArgs
@Parameter(property="addJavacArgs") protected java.lang.String 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.
-
source
@Parameter(property="maven.compiler.source") protected java.lang.String source
The -source argument for the Java compiler (when using incremental compiler).
-
target
@Parameter(property="maven.compiler.target") protected java.lang.String target
The -target argument for the Java compiler (when using incremental compiler).
-
encoding
@Parameter(property="project.build.sourceEncoding", defaultValue="UTF-8") protected java.lang.String encoding
The -encoding argument for the Java compiler. (when using incremental compiler).
-
displayCmd
@Parameter(property="displayCmd", defaultValue="false", required=true) public boolean displayCmd
Display the command line called ? (property 'maven.scala.displayCmd' replaced by 'displayCmd')
-
fork
@Parameter(defaultValue="true") protected boolean fork
Forks the execution of scalac into a separate process.
-
forceUseArgFile
@Parameter(defaultValue="false") protected boolean forceUseArgFile
Force the use of an external ArgFile to run any forked process.
-
checkMultipleScalaVersions
@Parameter(property="maven.scala.checkConsistency", defaultValue="true") protected boolean checkMultipleScalaVersions
Check if every dependencies use the same version of scala-library or scala.compat.version.
-
failOnMultipleScalaVersions
@Parameter(defaultValue="false") protected boolean failOnMultipleScalaVersions
Determines if a detection of multiple scala versions in the dependencies will cause the build to fail.
-
useCanonicalPath
@Parameter(property="maven.scala.useCanonicalPath", defaultValue="true") protected boolean useCanonicalPath
Should use CanonicalPath to normalize path (true => getCanonicalPath, false => getAbsolutePath)
-
mavenProjectBuilder
@Component protected org.apache.maven.project.MavenProjectBuilder mavenProjectBuilder
Artifact factory, needed to download source jars.
-
localRepository
@Parameter(property="localRepository", required=true, readonly=true) private org.apache.maven.artifact.repository.ArtifactRepository localRepository
The artifact repository to use.
-
artifactFactory
@Component private org.apache.maven.artifact.factory.ArtifactFactory artifactFactory
The artifact factory to use.
-
artifactMetadataSource
@Component private org.apache.maven.artifact.metadata.ArtifactMetadataSource artifactMetadataSource
The artifact metadata source to use.
-
artifactCollector
@Component private org.apache.maven.artifact.resolver.ArtifactCollector artifactCollector
The artifact collector to use.
-
dependencyTreeBuilder
@Component private org.apache.maven.shared.dependency.graph.DependencyGraphBuilder dependencyTreeBuilder
The dependency tree builder to use.
-
toolchainManager
@Component protected org.apache.maven.toolchain.ToolchainManager toolchainManager
The toolchain manager to use.
-
pluginArtifacts
@Parameter(defaultValue="${plugin.artifacts}") private java.util.List<org.apache.maven.artifact.Artifact> pluginArtifacts
List of artifacts to run plugin
-
_scalaVersionN
private VersionNumber _scalaVersionN
-
-
Method Detail
-
getScalaOrganization
public java.lang.String getScalaOrganization()
-
scalaCompilerArtifact
protected final org.apache.maven.artifact.Artifact scalaCompilerArtifact(java.lang.String scalaVersion)
Constructs anArtifact
for Scala Compiler.- Parameters:
scalaVersion
- the version of the Scala Compiler/Library we are using for this execution.- Returns:
- a
Artifact
for the Scala Compiler.
-
resolveArtifactDependencies
protected final java.util.Set<org.apache.maven.artifact.Artifact> resolveArtifactDependencies(org.apache.maven.artifact.Artifact artifact) throws java.lang.Exception
This method resolves all transitive dependencies of an artifact.- Parameters:
artifact
- theArtifact
used to retrieve dependencies.- Returns:
- resolved
Set
of dependencies. - Throws:
java.lang.Exception
-
resolveDependencyArtifacts
protected final java.util.Set<org.apache.maven.artifact.Artifact> resolveDependencyArtifacts(org.apache.maven.artifact.Artifact artifact, org.apache.maven.artifact.resolver.filter.ArtifactFilter collectionFilter, org.apache.maven.artifact.resolver.filter.ArtifactFilter resolutionFilter) throws java.lang.Exception
This method resolves all transitive dependencies of an artifact.- Parameters:
artifact
- theArtifact
used to retrieve dependencies.collectionFilter
- anArtifactFilter
used to determine which members of the dependency graph should be included in resolution.collectionFilter
- anArtifactFilter
used to determine which members dependency graph should be downloaded.- Returns:
- resolved
Set
of dependencies. - Throws:
java.lang.Exception
-
resolveDependencyArtifacts
protected final java.util.Set<org.apache.maven.artifact.Artifact> resolveDependencyArtifacts(org.apache.maven.artifact.Artifact artifact, org.apache.maven.artifact.resolver.filter.ArtifactFilter collectionFilter, org.apache.maven.artifact.resolver.filter.ArtifactFilter resolutionFilter, java.util.List<org.apache.maven.artifact.repository.ArtifactRepository> remoteRepositories, org.apache.maven.artifact.repository.ArtifactRepository localRepository) throws java.lang.Exception
This method resolves all transitive dependencies of an artifact.- Parameters:
artifact
- theArtifact
used to retrieve dependencies.collectionFilter
- anArtifactFilter
used to determine which members of the dependency graph should be included in resolution.collectionFilter
- anArtifactFilter
used to determine which members dependency graph should be downloaded.remoteRepositories
- aList
of remoteArtifactRespository
values to used for dependency resolution of the providedArtifact
.localRepository
- the localArtifactRepository
to use for dependency resolution of the givenArtifact
.- Returns:
- resolved
Set
of dependencies. - Throws:
java.lang.Exception
-
createArtifactResolutionRequest
private org.apache.maven.artifact.resolver.ArtifactResolutionRequest createArtifactResolutionRequest(org.apache.maven.artifact.Artifact artifact, org.apache.maven.artifact.resolver.filter.ArtifactFilter collectionFilter, org.apache.maven.artifact.resolver.filter.ArtifactFilter resolutionFilter, java.util.List<org.apache.maven.artifact.repository.ArtifactRepository> remoteRepositories, org.apache.maven.artifact.repository.ArtifactRepository localRepository)
Create aArtifactResolutionRequest
.- Parameters:
artifact
- theArtifact
used to retrieve dependencies.collectionFilter
- anArtifactFilter
used to determine which members of the dependency graph should be included in resolution.collectionFilter
- anArtifactFilter
used to determine which members dependency graph should be downloaded.remoteRepositories
- aList
of remoteArtifactRespository
values to used for dependency resolution of the providedArtifact
.localRepository
- the localArtifactRepository
to use for dependency resolution of the givenArtifact
.- Returns:
- an
ArtifactResolutionRequest
, typically used for dependency resolution requests against anArtifactResolver
.
-
addToClasspath
public void addToClasspath(java.lang.String groupId, java.lang.String artifactId, java.lang.String version, java.util.Set<java.lang.String> classpath) throws java.lang.Exception
- Throws:
java.lang.Exception
-
addToClasspath
public void addToClasspath(java.lang.String groupId, java.lang.String artifactId, java.lang.String version, java.util.Set<java.lang.String> classpath, boolean addDependencies) throws java.lang.Exception
- Throws:
java.lang.Exception
-
addToClasspath
public void addToClasspath(java.lang.String groupId, java.lang.String artifactId, java.lang.String version, java.lang.String classifier, java.util.Set<java.lang.String> classpath, boolean addDependencies) throws java.lang.Exception
added for classifier support.- Throws:
java.lang.Exception
-
addToClasspath
protected void addToClasspath(org.apache.maven.artifact.Artifact artifact, java.util.Set<java.lang.String> classpath, boolean addDependencies) throws java.lang.Exception
- Throws:
java.lang.Exception
-
addCompilerToClasspath
protected void addCompilerToClasspath(java.util.Set<java.lang.String> classpath) throws java.lang.Exception
- Throws:
java.lang.Exception
-
addLibraryToClasspath
protected void addLibraryToClasspath(java.util.Set<java.lang.String> classpath) throws java.lang.Exception
- Throws:
java.lang.Exception
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoExecutionException
org.apache.maven.plugin.MojoFailureException
-
getDependencies
protected java.util.List<org.apache.maven.model.Dependency> getDependencies()
-
findScalaVersion
protected VersionNumber findScalaVersion() throws java.lang.Exception
- Throws:
java.lang.Exception
-
findScalaVersionFromDependencies
private java.lang.String findScalaVersionFromDependencies() throws java.lang.Exception
- Throws:
java.lang.Exception
-
findVersionFromDependencies
protected java.lang.String findVersionFromDependencies(java.lang.String groupId, java.lang.String artifactId) throws java.lang.Exception
- Throws:
java.lang.Exception
-
checkScalaVersion
protected void checkScalaVersion() throws java.lang.Exception
- Throws:
java.lang.Exception
-
checkCorrectVersionsOfScalaLibrary
private void checkCorrectVersionsOfScalaLibrary(java.lang.String scalaDefVersion) throws java.lang.Exception
this method checks to see if there are multiple versions of the scala library- Throws:
java.lang.Exception
-
checkArtifactForScalaVersion
private void checkArtifactForScalaVersion(VersionNumber requiredScalaVersion, org.apache.maven.shared.dependency.graph.DependencyNode rootNode) throws java.lang.Exception
Visits a node (and all dependencies) to see if it contains duplicate scala versions- Throws:
java.lang.Exception
-
createScalaDistroDependencyFilter
private org.apache.maven.shared.dependency.graph.filter.DependencyNodeFilter createScalaDistroDependencyFilter()
- Returns:
- A filter to only extract artifacts deployed from scala distributions
-
doExecute
protected abstract void doExecute() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getScalaCommand
protected JavaMainCaller getScalaCommand() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getScalaCommand
protected final JavaMainCaller getScalaCommand(boolean forkOverride, java.lang.String mainClass) throws java.lang.Exception
Get aJavaMainCaller
used invoke a Java process. Typically this will be one of the Scala utilities (Compiler, ScalaDoc, REPL, etc.).This method does some setup on the
JavaMainCaller
which is not done by merely invokingnew
on one of the implementations. Specifically, it adds any Scala compiler plugin options, JVM options, and Scalac options defined on the plugin.- Parameters:
forkOverride
- override the setting forfork
. Currently this should only be set if you are invoking the REPL.mainClass
- the JVM main class to invoke.- Returns:
- a
JavaMainCaller
to use to invoke the given command. - Throws:
java.lang.Exception
-
getEmptyScalaCommand
protected final JavaMainCaller getEmptyScalaCommand(java.lang.String mainClass) throws java.lang.Exception
Get aJavaMainCaller
used invoke a Java process. Typically this will be one of the Scala utilities (Compiler, ScalaDoc, REPL, etc.).- Parameters:
mainClass
- the JVM main class to invoke.- Returns:
- a
JavaMainCaller
to use to invoke the given command. - Throws:
java.lang.Exception
-
getEmptyScalaCommand
protected JavaMainCaller getEmptyScalaCommand(java.lang.String mainClass, boolean forkOverride) throws java.lang.Exception
Get aJavaMainCaller
used invoke a Java process. Typically this will be one of the Scala utilities (Compiler, ScalaDoc, REPL, etc.).- Parameters:
mainClass
- the JVM main class to invoke.forkOverride
- override the setting forfork
. Currently this should only be set if you are invoking the REPL.- Returns:
- a
JavaMainCaller
to use to invoke the given command. - Throws:
java.lang.Exception
-
getToolClasspath
private java.lang.String getToolClasspath() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getScalaOptions
protected java.util.List<java.lang.String> getScalaOptions() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getJavacOptions
protected java.util.List<java.lang.String> getJavacOptions() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getLibraryJar
protected java.io.File getLibraryJar() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getCompilerJar
protected java.io.File getCompilerJar() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getCompilerDependencies
protected java.util.List<java.io.File> getCompilerDependencies() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getArtifactJar
protected java.io.File getArtifactJar(java.lang.String groupId, java.lang.String artifactId, java.lang.String version) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getArtifactJar
protected java.io.File getArtifactJar(java.lang.String groupId, java.lang.String artifactId, java.lang.String version, java.lang.String classifier) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getAllDependencies
protected java.util.Set<org.apache.maven.artifact.Artifact> getAllDependencies(java.lang.String groupId, java.lang.String artifactId, java.lang.String version) throws java.lang.Exception
- Throws:
java.lang.Exception
-
isJavaSupportedByCompiler
protected boolean isJavaSupportedByCompiler() throws java.lang.Exception
- Returns:
- This returns whether or not the scala version can support having java sent into the compiler
- Throws:
java.lang.Exception
-
addCompilerPluginOptions
protected void addCompilerPluginOptions(JavaMainCaller scalac) throws java.lang.Exception
Adds appropriate compiler plugins to the scalac command.- Parameters:
scalac
-- Throws:
java.lang.Exception
-
getCompilerPluginOptions
protected java.util.List<java.lang.String> getCompilerPluginOptions() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getCompilerPlugins
private java.util.Set<java.lang.String> getCompilerPlugins() throws java.lang.Exception
Retrieves a list of paths to scala compiler plugins.- Returns:
- The list of plugins
- Throws:
java.lang.Exception
-
findVersionFromPluginArtifacts
protected java.lang.String findVersionFromPluginArtifacts(java.lang.String groupId, java.lang.String artifactId) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getPluginArtifactJar
protected java.io.File getPluginArtifactJar(java.lang.String groupId, java.lang.String artifactId, java.lang.String version) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getPluginArtifactJar
protected java.io.File getPluginArtifactJar(java.lang.String groupId, java.lang.String artifactId, java.lang.String version, java.lang.String classifier) throws java.lang.Exception
- Throws:
java.lang.Exception
-
-