Specifying Java Version in Maven: Differences Between Properties and Compiler Plugin
How to Specify the JDK Version?
Use any of three ways: (1) Spring Boot feature, or use Maven compiler plugin with either (2) source & target or (3) with release.
Spring Boot
- is a Spring Boot-specific property.
- Example: 1.8 for both source and target.
maven-compiler-plugin with source & target
- Using maven-compiler-plugin or maven.compiler.source/maven.compiler.target properties are equivalent.
- Default values for source and target in maven-compiler-plugin are 1.7.
maven-compiler-plugin with release
- Provides a standard way to specify JVM versions.
- Sets source, target, and bootstrap JVM options to the same value.
Which is the Best Way to Specify the JDK Version?
- Spring Boot: Use if you use Spring Boot.
- Java 8 and below: Use either property or compiler plugin configuration.
- Java 9 and above: Consider using the release argument for cross-compilation compatibility.
What Happens if Version Differs Between JAVA_HOME and Pom.xml?
- Best practice is to ensure compatibility between JAVA_HOME and specified version.
- If JAVA_HOME is lower version than specified, specify the higher compiler version explicitly.
Why is the Compiler Plugin Traced Output Even if Not Specified?
- Maven uses core plugins to perform tasks.
- These plugins are included in the effective pom and are executed for required lifecycle phases.
The above is the detailed content of How to Specify the JDK Version in Maven: Properties vs. Compiler Plugin?. For more information, please follow other related articles on the PHP Chinese website!