是否有一种方法可以确保Maven模块与较早的Java版本兼容,而无需安装和使用特定的JDK版本?就是一些插件?
示例:java.lang.String.isBlank()仅可用于JDK 11,因此,如果目标版本为<= 10,则插件应检查是否已使用该方法。
或者,我可以编写一些插件执行程序来下载/解压缩jdk,然后针对该特定的jdk构建当前项目。但是,那太丑了。
答案 0 :(得分:0)
动物嗅探器推荐效果很好:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<version>1.17</version>
<executions>
<execution>
<id>verify-java-api</id>
<goals>
<goal>check</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
<configuration>
<signature>
<groupId>org.codehaus.mojo.signature</groupId>
<artifactId>java18</artifactId>
<version>1.0</version>
</signature>
</configuration>
</plugin>
更新:该动物嗅探器配置未发现此问题:
symbol: variable RELEASE_10
location: class javax.lang.model.SourceVersion