Package scala_maven
Class ScalaScriptMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- scala_maven.ScalaMojoSupport
-
- scala_maven.ScalaScriptMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
@Mojo(name="script", requiresDependencyResolution=RUNTIME, executionStrategy="always", threadSafe=true) public class ScalaScriptMojo extends ScalaMojoSupport
Run a scala script.- Since:
- 2.7
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.concurrent.atomic.AtomicInteger
_lastScriptIndex
protected java.lang.String
addToClasspath
Comma seperated list of directories or jars to add to the classpathprotected java.lang.String
excludeScopes
Comma separated list of scopes to remove from the classpath.protected java.lang.String
includeScopes
Comma separated list of scopes to add to the classpath.protected boolean
keepGeneratedScript
If set to true the Scala classfile that is generated will not be deleted after the goal completes.protected java.io.File
outputDir
The build directory of the projectprotected java.lang.String
removeFromClasspath
Comma separated list of directories or jars to remove from the classpath.protected java.lang.String
script
The script that will be executed.protected java.lang.String
scriptEncoding
The encoding of file containing script to be executed.protected java.io.File
scriptFile
The file containing script to be executed.-
Fields inherited from class scala_maven.ScalaMojoSupport
addJavacArgs, addScalacArgs, args, checkMultipleScalaVersions, compilerPlugins, dependencies, displayCmd, encoding, factory, failOnMultipleScalaVersions, forceUseArgFile, fork, JAR, javacArgs, javacGenerateDebugSymbols, jvmArgs, localRepo, mavenProjectBuilder, POM, project, reactorProjects, remoteRepos, resolver, SCALA_COMPILER_ARTIFACTID, SCALA_LIBRARY_ARTIFACTID, scalaClassName, session, source, target, toolchainManager, useCanonicalPath
-
-
Constructor Summary
Constructors Constructor Description ScalaScriptMojo()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
compileScript(java.io.File scriptDir, java.io.File destFile, java.net.URLClassLoader loader)
private void
configureClasspath(java.util.Set<java.lang.String> classpath)
private java.net.URLClassLoader
createScriptClassloader(java.io.File scriptDir, java.util.Set<java.lang.String> classpath)
private void
delete(java.io.File scriptDir)
protected void
doExecute()
private void
runScript(boolean mavenProjectDependency, java.net.URLClassLoader loader, java.lang.String baseName)
private static java.lang.String
scriptBaseNameOf(java.io.File scriptFile, int idx)
private void
wrapScript(java.io.File destFile, boolean mavenProjectDependency)
-
Methods inherited from class scala_maven.ScalaMojoSupport
addCompilerPluginOptions, addCompilerToClasspath, addLibraryToClasspath, addToClasspath, addToClasspath, addToClasspath, addToClasspath, checkScalaVersion, execute, findScalaVersion, findVersionFromDependencies, findVersionFromPluginArtifacts, getAllDependencies, getArtifactJar, getArtifactJar, getCompilerDependencies, getCompilerJar, getCompilerPluginOptions, getDependencies, getEmptyScalaCommand, getEmptyScalaCommand, getJavacOptions, getLibraryJar, getPluginArtifactJar, getPluginArtifactJar, getScalaCommand, getScalaCommand, getScalaOptions, getScalaOrganization, isJavaSupportedByCompiler, resolveArtifactDependencies, resolveDependencyArtifacts, resolveDependencyArtifacts, scalaCompilerArtifact
-
-
-
-
Field Detail
-
outputDir
@Parameter(property="project.build.directory") protected java.io.File outputDir
The build directory of the project
-
scriptFile
@Parameter(property="scriptFile") protected java.io.File scriptFile
The file containing script to be executed. Either 'scriptFile' or 'script' must be defined.
-
scriptEncoding
@Parameter(property="scriptEncoding", defaultValue="UTF-8") protected java.lang.String scriptEncoding
The encoding of file containing script to be executed.
-
script
@Parameter(property="script") protected java.lang.String script
The script that will be executed. Either 'scriptFile' or ' script' must be defined.
-
keepGeneratedScript
@Parameter(property="maven.scala.keepGeneratedScript", defaultValue="false") protected boolean keepGeneratedScript
If set to true the Scala classfile that is generated will not be deleted after the goal completes. This is to allows easier debugging of the script especially since line numbers will be wrong because lines are added to the compiled script (see script examples)
-
includeScopes
@Parameter(property="maven.scala.includeScopes") protected java.lang.String includeScopes
Comma separated list of scopes to add to the classpath. The possible scopes are : test,compile, system, runtime, plugin. By default embedded script into pom.xml run with 'plugin' scope and script read from scriptFile run with 'compile, test, runtime'
-
excludeScopes
@Parameter(property="maven.scala.excludeScopes") protected java.lang.String excludeScopes
Comma separated list of scopes to remove from the classpath. Eg: test,compile
-
addToClasspath
@Parameter(property="addToClasspath") protected java.lang.String addToClasspath
Comma seperated list of directories or jars to add to the classpath
-
removeFromClasspath
@Parameter(property="removeFromClasspath") protected java.lang.String removeFromClasspath
Comma separated list of directories or jars to remove from the classpath. This is useful for resolving conflicts in the classpath. For example, the script uses Ant 1.7 and the compiler dependencies pull in Ant 1.5 optional which conflicts and causes a crash
-
_lastScriptIndex
private static java.util.concurrent.atomic.AtomicInteger _lastScriptIndex
-
-
Method Detail
-
scriptBaseNameOf
private static java.lang.String scriptBaseNameOf(java.io.File scriptFile, int idx)
-
doExecute
protected void doExecute() throws java.lang.Exception
- Specified by:
doExecute
in classScalaMojoSupport
- Throws:
java.lang.Exception
-
runScript
private void runScript(boolean mavenProjectDependency, java.net.URLClassLoader loader, java.lang.String baseName) throws java.lang.Exception
- Throws:
java.lang.Exception
-
createScriptClassloader
private java.net.URLClassLoader createScriptClassloader(java.io.File scriptDir, java.util.Set<java.lang.String> classpath) throws java.lang.Exception
- Throws:
java.lang.Exception
-
compileScript
private void compileScript(java.io.File scriptDir, java.io.File destFile, java.net.URLClassLoader loader) throws java.lang.Exception
- Throws:
java.lang.Exception
-
configureClasspath
private void configureClasspath(java.util.Set<java.lang.String> classpath) throws java.lang.Exception, org.apache.maven.artifact.DependencyResolutionRequiredException
- Throws:
java.lang.Exception
org.apache.maven.artifact.DependencyResolutionRequiredException
-
wrapScript
private void wrapScript(java.io.File destFile, boolean mavenProjectDependency) throws java.io.IOException
- Throws:
java.io.IOException
-
delete
private void delete(java.io.File scriptDir)
-
-