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 the
ant
property requires Java 8, as the included Ant version was compiled for Java 8.- Since:
- 1.1
- Author:
- Keegan Witt
-
Field Summary
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
Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
bindAntBuilder
(Class<?> consoleClass, Class<?> bindingClass, Object console) Binds a new AntBuilder to the project properties.void
execute()
Executes this mojo.protected void
loadScript
(Class<?> consoleClass, Object console) protected Object
setupConsole
(Class<?> consoleClass, Class<?> bindingClass) Instantiates a groovy.ui.Console object.protected void
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
Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
Field Details
-
consoleScript
Script file to load into console. Can also be a project property referring to a file.- Since:
- 1.10.1
-
-
Constructor Details
-
ConsoleMojo
public ConsoleMojo()
-
-
Method Details
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureExceptionExecutes 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(Class<?> consoleClass, Object console) throws InvocationTargetException, IllegalAccessException -
setupConsole
protected Object setupConsole(Class<?> consoleClass, Class<?> bindingClass) throws InvocationTargetException, IllegalAccessException, 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:
InvocationTargetException
- when a reflection invocation needed for instantiating a console object cannot be completedIllegalAccessException
- when a method needed for instantiating a console object cannot be accessedInstantiationException
- when a class needed for instantiating a console object cannot be instantiated
-
bindAntBuilder
protected void bindAntBuilder(Class<?> consoleClass, Class<?> bindingClass, Object console) throws ClassNotFoundException, IllegalAccessException, 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:
ClassNotFoundException
- when a class needed for binding an AntBuilder object cannot be foundIllegalAccessException
- when a method needed for binding an AntBuilder object cannot be accessedInvocationTargetException
- when a reflection invocation needed for binding an AntBuilder object cannot be completed
-
waitForConsoleClose
protected void waitForConsoleClose() throws org.apache.maven.plugin.MojoFailureExceptionWaits 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
-