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.AbstractMojo
TODO: 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 Details

    • PS

      protected static final String PS
    • source

      @Parameter(property="maven.compiler.source", defaultValue="1.8") protected String source

      The -source argument 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:
    • target

      @Parameter(property="maven.compiler.target", defaultValue="1.8") protected String target

      The -target argument 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:
    • release

      @Parameter(property="maven.compiler.release") protected String release
      The -release argument for the Java compiler, supported since Java9
      Since:
      3.6
      See Also:
    • compilerArguments

      @Parameter @Deprecated protected Map<String,String> compilerArguments
      Deprecated.
      use compilerArgs instead.

      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 -J options are only passed through if fork is set to true.

      To pass -Xmaxerrs 1000 -Xlint -Xlint:-path -Averbose=true you 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 -J options are only passed through if fork is set to true.

      Example:
       <compilerArgs>
         <arg>-Xmaxerrs</arg>
         <arg>1000</arg>
         <arg>-Xlint</arg>
         <arg>-J-Duser.language=en_us</arg>
       </compilerArgs>
       
      Since:
      3.1
      See Also:
    • 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 use compilerArgs.

      This is because the list of valid arguments passed to a Java compiler varies based on the compiler version.

      Note that -J options are only passed through if fork is set to true.

      See Also:
  • Constructor Details

    • AbstractCompilerMojo

      public AbstractCompilerMojo()
  • Method Details

    • 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)
    • getClasspathElements

      protected abstract List<String> getClasspathElements()
    • getModulepathElements

      protected abstract List<String> getModulepathElements()
    • getPathElements

      protected abstract Map<String,org.codehaus.plexus.languages.java.jpms.JavaModuleDescriptor> getPathElements()
    • getCompileSourceRoots

      protected abstract List<String> getCompileSourceRoots()
    • preparePaths

      protected abstract void preparePaths(Set<File> sourceFiles)
    • 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()
    • getCompilerArguments

      protected abstract Map<String,String> getCompilerArguments()
    • getGeneratedSourcesDirectory

      protected abstract File getGeneratedSourcesDirectory()
    • getDebugFileName

      protected abstract String getDebugFileName()
    • getProject

      protected final org.apache.maven.project.MavenProject getProject()
    • getModuleDeclaration

      protected final Optional<Path> getModuleDeclaration(Set<File> sourceFiles)
    • execute

      public void execute() throws org.apache.maven.plugin.MojoExecutionException, CompilationFailureException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
      CompilationFailureException
    • isTestCompile

      protected boolean isTestCompile()
    • getIncludes

      protected abstract Set<String> getIncludes()
    • getExcludes

      protected abstract Set<String> getExcludes()
    • 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:
      true if at least one single dependency has changed.
    • setTarget

      public void setTarget(String target)
    • setRelease

      public void setRelease(String release)