Package org.codehaus.gmavenplus.mojo
Class AbstractGenerateStubsMojo
java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.codehaus.gmavenplus.mojo.AbstractGroovyMojo
org.codehaus.gmavenplus.mojo.AbstractGroovySourcesMojo
org.codehaus.gmavenplus.mojo.AbstractGroovyStubSourcesMojo
org.codehaus.gmavenplus.mojo.AbstractGenerateStubsMojo
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
- Direct Known Subclasses:
GenerateStubsMojo
,GenerateTestStubsMojo
The base generate stubs mojo, which all generate stubs mojos extend.
- Since:
- 1.0-beta-1
- Author:
- Keegan Witt
-
Field Summary
Modifier and TypeFieldDescriptionprotected boolean
Whether Groovy compiler should be set to debug.protected static final Version
Groovy 1.8.2 version.protected static final Version
Groovy 1.8.3 version.protected static final Version
Groovy 2.9.0 beta-1 version.protected static final Version
Groovy 1.9.0 beta-3 version.protected static final Version
Groovy 2.1.3 version.protected static final Version
Groovy 2.3.3 version.protected static final Version
Groovy 2.5.3 version.protected static final Version
Groovy 2.5.7 version.protected static final Version
Groovy 2.6.0 alpha-1 version.protected static final Version
Groovy 2.6.0 alpha-4 version.protected static final Version
Groovy 3.0.0 alpha-1 version.protected static final Version
Groovy 3.0.0 alpha-2 version.protected static final Version
Groovy 3.0.0 alpha-4 version.protected static final Version
Groovy 3.0.0 beta-1 version.protected static final Version
Groovy 3.0.0 beta-2 version.protected static final Version
Groovy 3.0.3 version.protected static final Version
Groovy 3.0.6 version.protected static final Version
Groovy 3.0.8 version.protected static final Version
Groovy 4.0.0 alpha-1 version.protected static final Version
Groovy 4.0.0 alpha-3 version.protected static final Version
Groovy 4.0.0 beta-1 version.protected static final Version
Groovy 4.0.11 version.protected static final Version
Groovy 4.0.11 version.protected static final Version
Groovy 4.0.2 version.protected static final Version
Groovy 4.0.11 version.protected static final Version
Groovy 4.0.6 version.protected static final Version
Groovy 5.0.0-alpha-1 version.protected IncludeClasspath
What classpath to include.protected boolean
Whether to check that the version of Groovy used is able to use the requestedtargetBytecode
.protected String
The encoding of source files.protected String
The Groovy compiler bytecode compatibility.protected int
Groovy compiler error tolerance (the number of non-fatal errors (per unit) that should be tolerated before compilation is aborted).protected boolean
Whether Groovy compiler should be set to verbose.protected int
Groovy compiler warning level.Fields inherited from class org.codehaus.gmavenplus.mojo.AbstractGroovySourcesMojo
MAIN, TEST
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
addGroovySources
(Set<File> stubSources, Class<?> compilerConfigurationClass, Class<?> javaStubCompilationUnitClass, Object compilerConfiguration, Object javaStubCompilationUnit) Adds the Groovy sources to the CompilationUnit.protected void
doStubGeneration
(Set<File> stubSources, List<?> classpath, File outputDirectory) Performs the stub generation on the specified source files.protected void
logGeneratedStubs
(File outputDirectory) Logs the stubs that have been generated.protected void
resetStubModifiedDates
(Set<File> stubs) This is a fix for ... It modifies the dates of the created stubs to 1/1/1970, ensuring that the Java compiler will not overwrite perfectly good compiled Groovy just because it has a newer source stub.protected Object
setupCompilerConfiguration
(File outputDirectory, Class<?> compilerConfigurationClass) Sets up the CompilerConfiguration to use for stub generation.protected boolean
Determines whether the version of Groovy supports stub generation.protected static String
translateJavacTargetToTargetBytecode
(String targetBytecode) protected void
Throws an exception if targetBytecode is not supported with this version of Groovy.Methods inherited from class org.codehaus.gmavenplus.mojo.AbstractGroovyStubSourcesMojo
getStubs
Methods inherited from class org.codehaus.gmavenplus.mojo.AbstractGroovySourcesMojo
getFiles, getFilesets, getTestFiles, getTestFilesets
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
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.maven.plugin.Mojo
execute
-
Field Details
-
GROOVY_5_0_0_ALPHA1
Groovy 5.0.0-alpha-1 version. -
GROOVY_4_0_21
Groovy 4.0.11 version. -
GROOVY_4_0_16
Groovy 4.0.11 version. -
GROOVY_4_0_11
Groovy 4.0.11 version. -
GROOVY_4_0_6
Groovy 4.0.6 version. -
GROOVY_4_0_2
Groovy 4.0.2 version. -
GROOVY_4_0_0_BETA1
Groovy 4.0.0 beta-1 version. -
GROOVY_4_0_0_ALPHA3
Groovy 4.0.0 alpha-3 version. -
GROOVY_4_0_0_ALPHA1
Groovy 4.0.0 alpha-1 version. -
GROOVY_3_0_8
Groovy 3.0.8 version. -
GROOVY_3_0_6
Groovy 3.0.6 version. -
GROOVY_3_0_3
Groovy 3.0.3 version. -
GROOVY_3_0_0_BETA2
Groovy 3.0.0 beta-2 version. -
GROOVY_3_0_0_BETA1
Groovy 3.0.0 beta-1 version. -
GROOVY_3_0_0_ALPHA4
Groovy 3.0.0 alpha-4 version. -
GROOVY_3_0_0_ALPHA2
Groovy 3.0.0 alpha-2 version. -
GROOVY_3_0_0_ALPHA1
Groovy 3.0.0 alpha-1 version. -
GROOVY_2_6_0_ALPHA4
Groovy 2.6.0 alpha-4 version. -
GROOVY_2_6_0_ALPHA1
Groovy 2.6.0 alpha-1 version. -
GROOVY_2_5_7
Groovy 2.5.7 version. -
GROOVY_2_5_3
Groovy 2.5.3 version. -
GROOVY_2_3_3
Groovy 2.3.3 version. -
GROOVY_2_1_3
Groovy 2.1.3 version. -
GROOVY_1_9_0_BETA1
Groovy 2.9.0 beta-1 version. -
GROOVY_1_9_0_BETA3
Groovy 1.9.0 beta-3 version. -
GROOVY_1_8_2
Groovy 1.8.2 version. -
GROOVY_1_8_3
Groovy 1.8.3 version. -
sourceEncoding
The encoding of source files. -
targetBytecode
The Groovy compiler bytecode compatibility. One of- 1.4 (or 4)
- 1.5 (or 5)
- 1.6 (or 6)
- 1.7 (or 7)
- 1.8 (or 8)
- 9 (or 1.9)
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- Since:
- 1.0-beta-3
-
skipBytecodeCheck
@Parameter(property="skipBytecodeCheck", defaultValue="false") protected boolean skipBytecodeCheckWhether to check that the version of Groovy used is able to use the requestedtargetBytecode
.- Since:
- 1.9.0
-
debug
@Parameter(defaultValue="false") protected boolean debugWhether Groovy compiler should be set to debug. -
verbose
@Parameter(defaultValue="false") protected boolean verboseWhether Groovy compiler should be set to verbose. -
warningLevel
@Parameter(defaultValue="1") protected int warningLevelGroovy compiler warning level. Should be one of:- 0
- None
- 1
- Likely Errors
- 2
- Possible Errors
- 3
- Paranoia
-
tolerance
@Parameter(defaultValue="0") protected int toleranceGroovy compiler error tolerance (the number of non-fatal errors (per unit) that should be tolerated before compilation is aborted). -
includeClasspath
What classpath to include. One of- PROJECT_ONLY
- PROJECT_AND_PLUGIN
- PLUGIN_ONLY
- Since:
- 1.8.0
-
-
Constructor Details
-
AbstractGenerateStubsMojo
public AbstractGenerateStubsMojo()
-
-
Method Details
-
doStubGeneration
protected void doStubGeneration(Set<File> stubSources, List<?> classpath, File outputDirectory) throws ClassNotFoundException, InvocationTargetException, IllegalAccessException, InstantiationException, MalformedURLException Performs the stub generation on the specified source files.- Parameters:
stubSources
- the sources to perform stub generation onclasspath
- The classpath to use for compilationoutputDirectory
- the directory to write the stub files to- Throws:
ClassNotFoundException
- when a class needed for stub generation cannot be foundInstantiationException
- when a class needed for stub generation cannot be instantiatedIllegalAccessException
- when a method needed for stub generation cannot be accessedInvocationTargetException
- when a reflection invocation needed for stub generation cannot be completedMalformedURLException
- when a classpath element provides a malformed URL
-
setupCompilerConfiguration
protected Object setupCompilerConfiguration(File outputDirectory, Class<?> compilerConfigurationClass) throws InvocationTargetException, IllegalAccessException, InstantiationException Sets up the CompilerConfiguration to use for stub generation.- Parameters:
outputDirectory
- the directory to write the stub files tocompilerConfigurationClass
- the CompilerConfiguration class- Returns:
- the CompilerConfiguration to use for stub generation
- Throws:
InstantiationException
- when a class needed for stub generation cannot be instantiatedIllegalAccessException
- when a method needed for stub generation cannot be accessedInvocationTargetException
- when a reflection invocation needed for stub generation cannot be completed
-
addGroovySources
protected void addGroovySources(Set<File> stubSources, Class<?> compilerConfigurationClass, Class<?> javaStubCompilationUnitClass, Object compilerConfiguration, Object javaStubCompilationUnit) throws InvocationTargetException, IllegalAccessException Adds the Groovy sources to the CompilationUnit.- Parameters:
stubSources
- the sources to perform stub generation oncompilerConfigurationClass
- the CompilerConfiguration classjavaStubCompilationUnitClass
- the JavaStubCompilationUnit classcompilerConfiguration
- the CompilerConfiguration to use for stub generationjavaStubCompilationUnit
- the JavaStubCompilationUnit to use for stub generation- Throws:
IllegalAccessException
- when a method needed for stub generation cannot be accessedInvocationTargetException
- when a reflection invocation needed for stub generation cannot be completed
-
supportsSettingExtensions
protected boolean supportsSettingExtensions()Determines whether the version of Groovy supports stub generation.- Returns:
true
if the version of Groovy supports stub generation,false
otherwise
-
logGeneratedStubs
Logs the stubs that have been generated.- Parameters:
outputDirectory
- the output directory for the stubs
-
resetStubModifiedDates
This is a fix for ... It modifies the dates of the created stubs to 1/1/1970, ensuring that the Java compiler will not overwrite perfectly good compiled Groovy just because it has a newer source stub. Basically, this prevents the stubs from causing a side effect with the Java compiler, but still allows stubs to work with JavaDoc.- Parameters:
stubs
- the files on which to reset the modified date
-
verifyGroovyVersionSupportsTargetBytecode
protected void verifyGroovyVersionSupportsTargetBytecode()Throws an exception if targetBytecode is not supported with this version of Groovy. That is, when Groovy added the option to org.codehaus.groovy.control.CompilerConfiguration and used it in org.codehaus.groovy.classgen.asm.WriterController. -
translateJavacTargetToTargetBytecode
-