在不安装旧JDK的情况下检查Maven中的Java版本/ API兼容性?

时间:2019-03-03 19:16:07

标签: maven

是否有一种方法可以确保Maven模块与较早的Java版本兼容,而无需安装和使用特定的JDK版本?就是一些插件?

示例:java.lang.String.isBlank()仅可用于JDK 11,因此,如果目标版本为<= 10,则插件应检查是否已使用该方法。

或者,我可以编写一些插件执行程序来下载/解压缩jdk,然后针对该特定的jdk构建当前项目。但是,那太丑了。

1 个答案:

答案 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