如何知道我的API所需的JDK最低版本

时间:2014-07-06 13:22:43

标签: java maven version

我正在编写一个Java API,我使用了很多库。我想知道使用我的API必须具备的JDK的最低版本是什么。在我的POM中我有这个:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
        <version>2.5.1</version>
           <configuration>
                <source>1.5</source>
                <target>1.4</target>
            </configuration>  
      ...
</plugin>

如果我把1.4作为源版本,我会收到错误(注释)。像这样我可以生成我的Jar文件。我的问题是我看到我使用的库中有一个需要1.6而我的目标是1.4。那么为什么我成功生成了我的Jar? maven是否验证每个依赖项的必需版本?

2 个答案:

答案 0 :(得分:2)

所有此参数都是将选项传递给javac您无法从另一个1.4来源构建版本1.4。鉴于Java 1.4已经过时了,它在官方的生命终结日期开始之前就已经失去了支持,如果你有任何选择我都不会支持它。

BTW即使你拥有1.4源和目标,仅凭这一点并不能保证它能在Java 1.4上运行。您还必须使用Java 1.4编译器。如果你不这样做,你可以使用Java 1.5中的方法/类,这些方法/类在Java 1.4中是不可用的

  

那么为什么我成功生成我的Jar?

因为您编译了代码,所以更改了版本并构建了jar。如果你做一个干净的构建,这不会起作用。

  

maven是否验证了每个依赖项的必需版本?

它不会验证任何内容,只是它所调用的程序是否没有错误地执行。

答案 1 :(得分:0)

这是来自maven文档:

  

仅设置目标选项并不能保证您的代码   实际上在具有指定版本的JRE上运行。陷阱是   无意中使用的API只存在于以后的JRE中   使用链接错误使代码在运行时失败。为了避免这种情况   问题,您可以配置编译器的引导类路径以匹配   目标JRE或使用Animal Sniffer Maven插件来验证您的   代码不使用非预期的API。

希望它有所帮助。