Package org.codehaus.gmavenplus.mojo
Class ConsoleMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.codehaus.gmavenplus.mojo.AbstractGroovyMojo
-
- org.codehaus.gmavenplus.mojo.AbstractToolsMojo
-
- org.codehaus.gmavenplus.mojo.ConsoleMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
@Mojo(name="console", requiresDependencyResolution=TEST) public class ConsoleMojo extends AbstractToolsMojo
Launches a Groovy console window bound to the current project. Note that this mojo requires Groovy >= 1.5.0. Note that it references the plugin classloader to pull in dependencies Groovy didn't include (for things like Ant for AntBuilder, Ivy for @grab, and Jansi for Groovysh). Note that using theant
property requires Java 8, as the included Ant version was compiled for Java 8.- Since:
- 1.1
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
consoleScript
Script file to load into console.-
Fields inherited from class org.codehaus.gmavenplus.mojo.AbstractToolsMojo
allowSystemExits, bindAllProjectProperties, bindAllSessionUserProperties, bindPropertiesToSeparateVariables, bindSessionUserOverrideProperties, includeClasspath, projectHelper, properties
-
Fields inherited from class org.codehaus.gmavenplus.mojo.AbstractGroovyMojo
classWrangler, GROOVY_1_5_0, GROOVY_SOURCES_PATTERN, JAVA_1_7, JAVA_1_8, JAVA_12, JAVA_SOURCES_PATTERN, minGroovyVersion, mojoExecution, pluginArtifacts, project, session
-
-
Constructor Summary
Constructors Constructor Description ConsoleMojo()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
bindAntBuilder(java.lang.Class<?> consoleClass, java.lang.Class<?> bindingClass, java.lang.Object console)
Binds a new AntBuilder to the project properties.void
execute()
Executes this mojo.protected void
loadScript(java.lang.Class<?> consoleClass, java.lang.Object console)
protected java.lang.Object
setupConsole(java.lang.Class<?> consoleClass, java.lang.Class<?> bindingClass)
Instantiates a groovy.ui.Console object.protected void
waitForConsoleClose()
Waits for the console in use to be closed.-
Methods inherited from class org.codehaus.gmavenplus.mojo.AbstractToolsMojo
initializeProperties, logUnableToInitializeAntBuilder
-
Methods inherited from class org.codehaus.gmavenplus.mojo.AbstractGroovyMojo
getJavaVersion, getJavaVersionString, groovyAtLeast, groovyIs, groovyNewerThan, groovyOlderThan, groovyVersionSupportsAction, isGroovyIndy, isJavaSupportIndy, isJavaSupportParameters, isJavaSupportPreviewFeatures, logPluginClasspath, setupClassWrangler
-
-
-
-
Method Detail
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException
Executes this mojo.- Throws:
org.apache.maven.plugin.MojoExecutionException
- If an unexpected problem occurs (causes a "BUILD ERROR" message to be displayed)org.apache.maven.plugin.MojoFailureException
- If unable to await console exit
-
loadScript
protected void loadScript(java.lang.Class<?> consoleClass, java.lang.Object console) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessException
- Throws:
java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
-
setupConsole
protected java.lang.Object setupConsole(java.lang.Class<?> consoleClass, java.lang.Class<?> bindingClass) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessException, java.lang.InstantiationException
Instantiates a groovy.ui.Console object.- Parameters:
consoleClass
- the groovy.ui.Console class to usebindingClass
- the groovy.lang.Binding class to use- Returns:
- a new groovy.ui.Console object
- Throws:
java.lang.reflect.InvocationTargetException
- when a reflection invocation needed for instantiating a console object cannot be completedjava.lang.IllegalAccessException
- when a method needed for instantiating a console object cannot be accessedjava.lang.InstantiationException
- when a class needed for instantiating a console object cannot be instantiated
-
bindAntBuilder
protected void bindAntBuilder(java.lang.Class<?> consoleClass, java.lang.Class<?> bindingClass, java.lang.Object console) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
Binds a new AntBuilder to the project properties.- Parameters:
consoleClass
- the groovy.ui.Console class to usebindingClass
- the groovy.lang.Binding class to useconsole
- the groovy.ui.Console object to use- Throws:
java.lang.ClassNotFoundException
- when a class needed for binding an AntBuilder object cannot be foundjava.lang.IllegalAccessException
- when a method needed for binding an AntBuilder object cannot be accessedjava.lang.reflect.InvocationTargetException
- when a reflection invocation needed for binding an AntBuilder object cannot be completed
-
waitForConsoleClose
protected void waitForConsoleClose() throws org.apache.maven.plugin.MojoFailureException
Waits for the console in use to be closed.- Throws:
org.apache.maven.plugin.MojoFailureException
- if the execution was interrupted while running or it was unable to find the console thread to wait on
-
-