Package scala_maven

Class ScalaMojoSupport

    • 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 arguments
      private 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
      Constant String 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 plugin
      protected static java.lang.String POM
      Constant String 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 resolver
      protected 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 as
      private 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 Object
      protected 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)
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • 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 versions
      private void checkCorrectVersionsOfScalaLibrary​(java.lang.String scalaDefVersion)
      this method checks to see if there are multiple versions of the scala library
      protected 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 a ArtifactResolutionRequest.
      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 a JavaMainCaller used invoke a Java process.
      protected JavaMainCaller getEmptyScalaCommand​(java.lang.String mainClass, boolean forkOverride)
      Get a JavaMainCaller 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 a JavaMainCaller 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 an Artifact for Scala Compiler.
      • Methods inherited from class org.apache.maven.plugin.AbstractMojo

        getLog, getPluginContext, setLog, setPluginContext
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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
        Constant String for "pom". Used to specify the Maven POM artifact type.
        See Also:
        Constant Field Values
      • JAR

        protected static final java.lang.String JAR
        Constant String 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).
      • 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)
        See Also:
        https://github.com/davidB/maven-scala-plugin/issues/50
      • 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
    • Constructor Detail

      • ScalaMojoSupport

        public ScalaMojoSupport()
    • Method Detail

      • getScalaOrganization

        public java.lang.String getScalaOrganization()
      • scalaCompilerArtifact

        protected final org.apache.maven.artifact.Artifact scalaCompilerArtifact​(java.lang.String scalaVersion)
        Constructs an Artifact 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 - the Artifact 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 - the Artifact used to retrieve dependencies.
        collectionFilter - an ArtifactFilter used to determine which members of the dependency graph should be included in resolution.
        collectionFilter - an ArtifactFilter 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 - the Artifact used to retrieve dependencies.
        collectionFilter - an ArtifactFilter used to determine which members of the dependency graph should be included in resolution.
        collectionFilter - an ArtifactFilter used to determine which members dependency graph should be downloaded.
        remoteRepositories - a List of remote ArtifactRespository values to used for dependency resolution of the provided Artifact.
        localRepository - the local ArtifactRepository to use for dependency resolution of the given Artifact.
        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 a ArtifactResolutionRequest.
        Parameters:
        artifact - the Artifact used to retrieve dependencies.
        collectionFilter - an ArtifactFilter used to determine which members of the dependency graph should be included in resolution.
        collectionFilter - an ArtifactFilter used to determine which members dependency graph should be downloaded.
        remoteRepositories - a List of remote ArtifactRespository values to used for dependency resolution of the provided Artifact.
        localRepository - the local ArtifactRepository to use for dependency resolution of the given Artifact.
        Returns:
        an ArtifactResolutionRequest, typically used for dependency resolution requests against an ArtifactResolver.
      • 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 a JavaMainCaller 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 invoking new 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 for fork. 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 a JavaMainCaller 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 a JavaMainCaller 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 for fork. 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