Class AbstractCompilerMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.apache.maven.plugin.compiler.AbstractCompilerMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled,org.apache.maven.plugin.Mojo
- Direct Known Subclasses:
CompilerMojo,TestCompilerMojo
public abstract class AbstractCompilerMojo extends org.apache.maven.plugin.AbstractMojoTODO: At least one step could be optimized, currently the plugin will do two scans of all the source code if the compiler has to have the entire set of sources. This is currently the case for at least the C# compiler and most likely all the other .NET compilers too.- Since:
- 2.0
- Author:
- others, Trygve Laugstøl
-
-
Field Summary
Fields Modifier and Type Field Description protected List<String>compilerArgsSets the arguments to be passed to the compiler.protected StringcompilerArgumentSets the unformatted single argument string to be passed to the compiler.protected Map<String,String>compilerArgumentsDeprecated.usecompilerArgsinstead.protected static StringPSprotected StringreleaseThe-releaseargument for the Java compiler, supported since Java9protected StringsourceThe-sourceargument for the Java compiler.protected StringtargetThe-targetargument for the Java compiler.
-
Constructor Summary
Constructors Constructor Description AbstractCompilerMojo()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidexecute()protected DategetBuildStartTime()protected abstract List<String>getClasspathElements()protected abstract StringgetCompilerArgument()protected abstract Map<String,String>getCompilerArguments()protected abstract List<String>getCompileSourceRoots()protected abstract StringgetDebugFileName()protected abstract Set<String>getExcludes()protected abstract FilegetGeneratedSourcesDirectory()protected abstract Set<String>getIncludes()protected Optional<Path>getModuleDeclaration(Set<File> sourceFiles)protected abstract List<String>getModulepathElements()protected abstract FilegetOutputDirectory()protected abstract Map<String,org.codehaus.plexus.languages.java.jpms.JavaModuleDescriptor>getPathElements()protected org.apache.maven.project.MavenProjectgetProject()protected abstract StringgetRelease()protected intgetRequestThreadCount()try to get thread count if a Maven 3 build, using reflection as the plugin must not be maven3 api dependentprotected abstract StringgetSource()protected abstract org.codehaus.plexus.compiler.util.scan.SourceInclusionScannergetSourceInclusionScanner(int staleMillis)protected abstract org.codehaus.plexus.compiler.util.scan.SourceInclusionScannergetSourceInclusionScanner(String inputFileEnding)protected abstract StringgetTarget()protected org.apache.maven.toolchain.ToolchaingetToolchain()protected booleanisDependencyChanged()We just compare the timestamps of all local dependency files (inter-module dependency classpath) and the own generated classes and if we got a file which is >= the build-started timestamp, then we caught a file which got changed during this build.protected booleanisTestCompile()protected abstract voidpreparePaths(Set<File> sourceFiles)voidsetRelease(String release)voidsetTarget(String target)
-
-
-
Field Detail
-
PS
protected static final String PS
-
source
@Parameter(property="maven.compiler.source", defaultValue="1.8") protected String sourceThe
-sourceargument for the Java compiler.NOTE:
Since 3.8.0 the default value has changed from 1.5 to 1.6
Since 3.9.0 the default value has changed from 1.6 to 1.7
Since 3.11.0 the default value has changed from 1.7 to 1.8
- See Also:
- javac -source
-
target
@Parameter(property="maven.compiler.target", defaultValue="1.8") protected String targetThe
-targetargument for the Java compiler.NOTE:
Since 3.8.0 the default value has changed from 1.5 to 1.6
Since 3.9.0 the default value has changed from 1.6 to 1.7
Since 3.11.0 the default value has changed from 1.7 to 1.8
- See Also:
- javac -target
-
release
@Parameter(property="maven.compiler.release") protected String release
The-releaseargument for the Java compiler, supported since Java9- Since:
- 3.6
- See Also:
- javac -release
-
compilerArguments
@Parameter @Deprecated protected Map<String,String> compilerArguments
Deprecated.usecompilerArgsinstead.Sets the arguments to be passed to the compiler (prepending a dash).
This is because the list of valid arguments passed to a Java compiler varies based on the compiler version.
Note that
-Joptions are only passed through ifforkis set totrue.To pass
-Xmaxerrs 1000 -Xlint -Xlint:-path -Averbose=trueyou should include the following:<compilerArguments> <Xmaxerrs>1000</Xmaxerrs> <Xlint/> <Xlint:-path/> <Averbose>true</Averbose> </compilerArguments>
- Since:
- 2.0.1
-
compilerArgs
@Parameter protected List<String> compilerArgs
Sets the arguments to be passed to the compiler.
Note that
Example:-Joptions are only passed through ifforkis set totrue.<compilerArgs> <arg>-Xmaxerrs</arg> <arg>1000</arg> <arg>-Xlint</arg> <arg>-J-Duser.language=en_us</arg> </compilerArgs>
- Since:
- 3.1
- See Also:
- javac -J
-
compilerArgument
@Parameter protected String compilerArgument
Sets the unformatted single argument string to be passed to the compiler. To pass multiple arguments such as
-Xmaxerrs 1000(which are actually two arguments) you have to usecompilerArgs.This is because the list of valid arguments passed to a Java compiler varies based on the compiler version.
Note that
-Joptions are only passed through ifforkis set totrue.- See Also:
- javac -J
-
-
Method Detail
-
getSourceInclusionScanner
protected abstract org.codehaus.plexus.compiler.util.scan.SourceInclusionScanner getSourceInclusionScanner(int staleMillis)
-
getSourceInclusionScanner
protected abstract org.codehaus.plexus.compiler.util.scan.SourceInclusionScanner getSourceInclusionScanner(String inputFileEnding)
-
getPathElements
protected abstract Map<String,org.codehaus.plexus.languages.java.jpms.JavaModuleDescriptor> getPathElements()
-
getOutputDirectory
protected abstract File getOutputDirectory()
-
getSource
protected abstract String getSource()
-
getTarget
protected abstract String getTarget()
-
getRelease
protected abstract String getRelease()
-
getCompilerArgument
protected abstract String getCompilerArgument()
-
getGeneratedSourcesDirectory
protected abstract File getGeneratedSourcesDirectory()
-
getDebugFileName
protected abstract String getDebugFileName()
-
getProject
protected final org.apache.maven.project.MavenProject getProject()
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, CompilationFailureException- Throws:
org.apache.maven.plugin.MojoExecutionExceptionCompilationFailureException
-
isTestCompile
protected boolean isTestCompile()
-
getRequestThreadCount
protected int getRequestThreadCount()
try to get thread count if a Maven 3 build, using reflection as the plugin must not be maven3 api dependent- Returns:
- number of thread for this build or 1 if not multi-thread build
-
getBuildStartTime
protected Date getBuildStartTime()
-
getToolchain
protected final org.apache.maven.toolchain.Toolchain getToolchain()
-
isDependencyChanged
protected boolean isDependencyChanged()
We just compare the timestamps of all local dependency files (inter-module dependency classpath) and the own generated classes and if we got a file which is >= the build-started timestamp, then we caught a file which got changed during this build.- Returns:
trueif at least one single dependency has changed.
-
setTarget
public void setTarget(String target)
-
setRelease
public void setRelease(String release)
-
-