retrolambda:process-main

Full name:

net.orfjackal.retrolambda:retrolambda-maven-plugin:2.5.5:process-main

Description:

Processes main classes compiled with Java 8 so that they will be compatible with Java 5, 6 or 7 runtime.

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: compile.
  • Binds by default to the lifecycle phase: process-classes.

Required Parameters

Name Type Since Description
defaultMethods boolean 2.0.0 Whether to backport default methods and static methods on interfaces. LIMITATIONS: All backported interfaces and all classes which implement them or call their static methods must be backported together, with one execution of Retrolambda.
Default value is: false.
User property is: retrolambdaDefaultMethods.
javacHacks boolean 2.5.5 Whether to apply experimental javac issues workarounds.
Default value is: false.
User property is: retrolambdaJavacHacks.
mainInputDir File 1.3.0 Directory containing the original classes compiled with Java 8.
Default value is: ${project.build.outputDirectory}.
User property is: retrolambdaMainInputDir.
mainOutputDir File 1.3.0 Directory where to write the backported classes. If same as the input directory, will overwrite the original classes.
Default value is: ${project.build.outputDirectory}.
User property is: retrolambdaMainOutputDir.
quiet boolean 2.4.0 Reduces the amount of logging.
Default value is: false.
User property is: retrolambdaQuiet.
target String 1.2.0 The Java version targeted by the bytecode processing. Possible values are 1.5, 1.6, 1.7 and 1.8. After processing the classes will be compatible with the target JVM provided the known limitations are considered. See project documentation for more details.
Default value is: 1.7.
User property is: retrolambdaTarget.

Optional Parameters

Name Type Since Description
fork boolean 1.6.0 Forces Retrolambda to run in a separate process. The default is not to fork, in which case Maven has to run under Java 8, or this plugin will fall back to forking. The forked process uses a Java agent hook for capturing the lambda classes generated by Java 8, whereas the non-forked version hooks into internal Java APIs, making it more susceptible to breaking between Java releases.
Default value is: false.
java8home File 1.2.0 Directory of the Java 8 installation for running Retrolambda. The JRE to be used will be determined in priority order:
  1. This parameter
  2. JDK toolchain
  3. Same as Maven

User property is: java8home.

Parameter Details

defaultMethods:

Whether to backport default methods and static methods on interfaces. LIMITATIONS: All backported interfaces and all classes which implement them or call their static methods must be backported together, with one execution of Retrolambda.
  • Type: boolean
  • Since: 2.0.0
  • Required: Yes
  • User Property: retrolambdaDefaultMethods
  • Default: false

fork:

Forces Retrolambda to run in a separate process. The default is not to fork, in which case Maven has to run under Java 8, or this plugin will fall back to forking. The forked process uses a Java agent hook for capturing the lambda classes generated by Java 8, whereas the non-forked version hooks into internal Java APIs, making it more susceptible to breaking between Java releases.
  • Type: boolean
  • Since: 1.6.0
  • Required: No
  • Default: false

java8home:

Directory of the Java 8 installation for running Retrolambda. The JRE to be used will be determined in priority order:
  1. This parameter
  2. JDK toolchain
  3. Same as Maven
  • Type: java.io.File
  • Since: 1.2.0
  • Required: No
  • User Property: java8home

javacHacks:

Whether to apply experimental javac issues workarounds.
  • Type: boolean
  • Since: 2.5.5
  • Required: Yes
  • User Property: retrolambdaJavacHacks
  • Default: false

mainInputDir:

Directory containing the original classes compiled with Java 8.
  • Type: java.io.File
  • Since: 1.3.0
  • Required: Yes
  • User Property: retrolambdaMainInputDir
  • Default: ${project.build.outputDirectory}

mainOutputDir:

Directory where to write the backported classes. If same as the input directory, will overwrite the original classes.
  • Type: java.io.File
  • Since: 1.3.0
  • Required: Yes
  • User Property: retrolambdaMainOutputDir
  • Default: ${project.build.outputDirectory}

quiet:

Reduces the amount of logging.
  • Type: boolean
  • Since: 2.4.0
  • Required: Yes
  • User Property: retrolambdaQuiet
  • Default: false

target:

The Java version targeted by the bytecode processing. Possible values are 1.5, 1.6, 1.7 and 1.8. After processing the classes will be compatible with the target JVM provided the known limitations are considered. See project documentation for more details.
  • Type: java.lang.String
  • Since: 1.2.0
  • Required: Yes
  • User Property: retrolambdaTarget
  • Default: 1.7