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
FieldsModifier and TypeFieldDescriptionprotected booleanWhether Groovy compiler should be set to debug.protected static final VersionGroovy 1.8.2 version.protected static final VersionGroovy 1.8.3 version.protected static final VersionGroovy 2.9.0 beta-1 version.protected static final VersionGroovy 1.9.0 beta-3 version.protected static final VersionGroovy 2.1.3 version.protected static final VersionGroovy 2.3.3 version.protected static final VersionGroovy 2.5.3 version.protected static final VersionGroovy 2.5.7 version.protected static final VersionGroovy 2.6.0 alpha-1 version.protected static final VersionGroovy 2.6.0 alpha-4 version.protected static final VersionGroovy 3.0.0 alpha-1 version.protected static final VersionGroovy 3.0.0 alpha-2 version.protected static final VersionGroovy 3.0.0 alpha-4 version.protected static final VersionGroovy 3.0.0 beta-1 version.protected static final VersionGroovy 3.0.0 beta-2 version.protected static final VersionGroovy 3.0.3 version.protected static final VersionGroovy 3.0.6 version.protected static final VersionGroovy 3.0.8 version.protected static final VersionGroovy 4.0.0 alpha-1 version.protected static final VersionGroovy 4.0.0 alpha-3 version.protected static final VersionGroovy 4.0.0 beta-1 version.protected static final VersionGroovy 4.0.11 version.protected static final VersionGroovy 4.0.11 version.protected static final VersionGroovy 4.0.2 version.protected static final VersionGroovy 4.0.21 version.protected static final VersionGroovy 4.0.24 version.protected static final VersionGroovy 4.0.27 version.protected static final VersionGroovy 4.0.6 version.protected static final VersionGroovy 5.0.0-alpha-1 version.protected static final VersionGroovy 5.0.0-alpha-11 version.protected static final VersionGroovy 5.0.0-alpha-13 version.protected static final VersionGroovy 5.0.0-alpha-3 version.protected static final VersionGroovy 5.0.0-alpha-8 version.protected IncludeClasspathWhat classpath to include.protected booleanWhether to check that the version of Groovy used is able to use the requestedtargetBytecode.protected StringThe encoding of source files.protected StringThe Groovy compiler bytecode compatibility.protected intGroovy compiler error tolerance (the number of non-fatal errors (per unit) that should be tolerated before compilation is aborted).protected booleanWhether Groovy compiler should be set to verbose.protected intGroovy compiler warning level.Fields inherited from class org.codehaus.gmavenplus.mojo.AbstractGroovySourcesMojo
MAIN, TESTFields 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, sessionFields inherited from interface org.apache.maven.plugin.Mojo
ROLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddGroovySources(Set<File> stubSources, Class<?> compilerConfigurationClass, Class<?> javaStubCompilationUnitClass, Object compilerConfiguration, Object javaStubCompilationUnit) Adds the Groovy sources to the CompilationUnit.protected voiddoStubGeneration(Set<File> stubSources, List<?> classpath, File outputDirectory) Performs the stub generation on the specified source files.protected voidlogGeneratedStubs(File outputDirectory) Logs the stubs that have been generated.protected voidresetStubModifiedDates(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 ObjectsetupCompilerConfiguration(File outputDirectory, Class<?> compilerConfigurationClass) Sets up the CompilerConfiguration to use for stub generation.protected booleanDetermines whether the version of Groovy supports stub generation.protected static StringtranslateJavacTargetToTargetBytecode(String targetBytecode) protected voidThrows an exception if targetBytecode is not supported with this version of Groovy.Methods inherited from class org.codehaus.gmavenplus.mojo.AbstractGroovyStubSourcesMojo
getStubs, removeSourceRootMethods inherited from class org.codehaus.gmavenplus.mojo.AbstractGroovySourcesMojo
getFiles, getFilesets, getTestFiles, getTestFilesetsMethods inherited from class org.codehaus.gmavenplus.mojo.AbstractGroovyMojo
getJavaVersion, getJavaVersionString, groovyAtLeast, groovyIs, groovyNewerThan, groovyOlderThan, groovyVersionSupportsAction, isGroovyIndy, isJavaSupportIndy, isJavaSupportParameters, isJavaSupportPreviewFeatures, logPluginClasspath, setupClassWranglerMethods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContextMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.maven.plugin.Mojo
execute
-
Field Details
-
GROOVY_5_0_0_ALPHA13
Groovy 5.0.0-alpha-13 version. -
GROOVY_5_0_0_ALPHA11
Groovy 5.0.0-alpha-11 version. -
GROOVY_5_0_0_ALPHA8
Groovy 5.0.0-alpha-8 version. -
GROOVY_5_0_0_ALPHA3
Groovy 5.0.0-alpha-3 version. -
GROOVY_5_0_0_ALPHA1
Groovy 5.0.0-alpha-1 version. -
GROOVY_4_0_27
Groovy 4.0.27 version. -
GROOVY_4_0_24
Groovy 4.0.24 version. -
GROOVY_4_0_21
Groovy 4.0.21 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
- 24
- 25
- 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:
trueif the version of Groovy supports stub generation,falseotherwise
-
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
-