有时,您可能需要将某个项目编译为与当前使用的版本不同的版本。javac可以使用-source和-target接受此类命令。编译器插件也可以配置为在编译期间提供这些选项。
例如,如果你想启用断言(-source 1.4)并且还希望编译的类与 JVM 1.4 兼容(-target 1.4),那么你可以输入:
<project> [...] <build> [...] <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <source>1.4</source> <target>1.4</target> </configuration> </plugin> </plugins> [...] </build> [...] </project>
注意:仅设置目标选项并不能保证您的代码实际运行在具有指定版本的 JRE 上。陷阱是意外使用仅存在于后来的 JRE 中的 API,这会使您的代码在运行时失败并出现链接错误。为避免此问题,您可以配置编译器的引导类路径以匹配目标 JRE,或使用Animal Sniffer Maven 插件来验证您的代码没有使用意外 API。