Package org.apache.maven.plugin.compiler
Class CompilerMojo
java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.plugin.compiler.AbstractCompilerMojo
org.apache.maven.plugin.compiler.CompilerMojo
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
@Mojo(name="compile",
defaultPhase=COMPILE,
threadSafe=true,
requiresDependencyResolution=COMPILE)
public class CompilerMojo
extends AbstractCompilerMojo
Compiles application sources
- Since:
- 2.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionThe source directories containing the sources to be compiled.private String
when forking and debug activated the commandline used will be dumped in this fileA list of exclusion filters for the compiler.private File
Specify where to place generated source files created by annotation processing.A list of inclusion filters for the compiler.A list of exclusion filters for the incremental calculation.(package private) final org.codehaus.plexus.languages.java.jpms.LocationManager
private boolean
When set totrue
, the classes will be placed inMETA-INF/versions/${release}
The release value must be set, otherwise the plugin will fail.private File
The directory for compiled classes.private org.apache.maven.artifact.Artifact
Projects main artifact.private boolean
Set this to 'true' to bypass compilation of main sources.Fields inherited from class org.apache.maven.plugin.compiler.AbstractCompilerMojo
compilerArgs, compilerArgument, compilerArguments, DEFAULT_SOURCE, DEFAULT_TARGET, MODULE_INFO_TARGET, PS, release, source, target
Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
detectFilenameBasedAutomodules
(org.codehaus.plexus.languages.java.jpms.ResolvePathsResult<File> resolvePathsResult, org.codehaus.plexus.languages.java.jpms.JavaModuleDescriptor moduleDescriptor) void
execute()
getCompileClasspathElements
(org.apache.maven.project.MavenProject project) protected String
protected String
protected File
protected File
protected String
protected String
protected org.codehaus.plexus.compiler.util.scan.SourceInclusionScanner
getSourceInclusionScanner
(int staleMillis) protected org.codehaus.plexus.compiler.util.scan.SourceInclusionScanner
getSourceInclusionScanner
(String inputFileEnding) protected String
protected void
preparePaths
(Set<File> sourceFiles) private void
writeBoxedWarning
(String message) Methods inherited from class org.apache.maven.plugin.compiler.AbstractCompilerMojo
getBuildStartTime, getImplicit, getModuleDeclaration, getProject, getRequestThreadCount, getToolchain, isDependencyChanged, isTestCompile, setRelease, setTarget
Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
Field Details
-
compileSourceRoots
@Parameter(defaultValue="${project.compileSourceRoots}", readonly=false, required=true) private List<String> compileSourceRootsThe source directories containing the sources to be compiled. -
outputDirectory
@Parameter(property="maven.compiler.outputDirectory", defaultValue="${project.build.outputDirectory}", required=true, readonly=false) private File outputDirectoryThe directory for compiled classes.This parameter should only be modified in special cases. One example is creating a multi-release jar with a lower bytecode level (i.e. setting it to
${project.build.outputDirectory}/META-INF/versions/21
or similar) in an additional execution.When the required bytecode level is available though an installed JDK or toolchain, it is recommended to use the
<release>
property in conjunction with the ${multiReleaseOutput} parameter instead. -
projectArtifact
@Parameter(defaultValue="${project.artifact}", readonly=true, required=true) private org.apache.maven.artifact.Artifact projectArtifactProjects main artifact. -
includes
A list of inclusion filters for the compiler. -
excludes
A list of exclusion filters for the compiler. -
incrementalExcludes
A list of exclusion filters for the incremental calculation.- Since:
- 3.11
-
generatedSourcesDirectory
@Parameter(defaultValue="${project.build.directory}/generated-sources/annotations") private File generatedSourcesDirectorySpecify where to place generated source files created by annotation processing. Only applies to JDK 1.6+
- Since:
- 2.2
-
skipMain
@Parameter(property="maven.main.skip") private boolean skipMainSet this to 'true' to bypass compilation of main sources. Its use is NOT RECOMMENDED, but quite convenient on occasion. -
compilePath
-
multiReleaseOutput
@Parameter private boolean multiReleaseOutputWhen set to
Note: A jar is only a multirelease jar iftrue
, the classes will be placed inMETA-INF/versions/${release}
The release value must be set, otherwise the plugin will fail.META-INF/MANIFEST.MF
containsMulti-Release: true
. You need to set this by configuring the maven-jar-plugin. This implies that you cannot test a multirelease jar using the outputDirectory.- Since:
- 3.7.1
-
debugFileName
when forking and debug activated the commandline used will be dumped in this file- Since:
- 3.10.0
-
locationManager
final org.codehaus.plexus.languages.java.jpms.LocationManager locationManager -
classpathElements
-
modulepathElements
-
pathElements
-
-
Constructor Details
-
CompilerMojo
public CompilerMojo()
-
-
Method Details
-
getCompileSourceRoots
- Specified by:
getCompileSourceRoots
in classAbstractCompilerMojo
-
getClasspathElements
- Specified by:
getClasspathElements
in classAbstractCompilerMojo
-
getModulepathElements
- Specified by:
getModulepathElements
in classAbstractCompilerMojo
-
getPathElements
protected Map<String,org.codehaus.plexus.languages.java.jpms.JavaModuleDescriptor> getPathElements()- Specified by:
getPathElements
in classAbstractCompilerMojo
-
getOutputDirectory
- Specified by:
getOutputDirectory
in classAbstractCompilerMojo
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, CompilationFailureException- Specified by:
execute
in interfaceorg.apache.maven.plugin.Mojo
- Overrides:
execute
in classAbstractCompilerMojo
- Throws:
org.apache.maven.plugin.MojoExecutionException
CompilationFailureException
-
getIncludes
- Specified by:
getIncludes
in classAbstractCompilerMojo
-
getExcludes
- Specified by:
getExcludes
in classAbstractCompilerMojo
-
preparePaths
- Specified by:
preparePaths
in classAbstractCompilerMojo
-
detectFilenameBasedAutomodules
private void detectFilenameBasedAutomodules(org.codehaus.plexus.languages.java.jpms.ResolvePathsResult<File> resolvePathsResult, org.codehaus.plexus.languages.java.jpms.JavaModuleDescriptor moduleDescriptor) -
getCompileClasspathElements
-
getSourceInclusionScanner
protected org.codehaus.plexus.compiler.util.scan.SourceInclusionScanner getSourceInclusionScanner(int staleMillis) - Specified by:
getSourceInclusionScanner
in classAbstractCompilerMojo
-
getSourceInclusionScanner
protected org.codehaus.plexus.compiler.util.scan.SourceInclusionScanner getSourceInclusionScanner(String inputFileEnding) - Specified by:
getSourceInclusionScanner
in classAbstractCompilerMojo
-
getSource
- Specified by:
getSource
in classAbstractCompilerMojo
-
getTarget
- Specified by:
getTarget
in classAbstractCompilerMojo
-
getRelease
- Specified by:
getRelease
in classAbstractCompilerMojo
-
getCompilerArgument
- Specified by:
getCompilerArgument
in classAbstractCompilerMojo
-
getCompilerArguments
- Specified by:
getCompilerArguments
in classAbstractCompilerMojo
-
getGeneratedSourcesDirectory
- Specified by:
getGeneratedSourcesDirectory
in classAbstractCompilerMojo
-
getDebugFileName
- Specified by:
getDebugFileName
in classAbstractCompilerMojo
-
writeBoxedWarning
-