如何找到特定版本的maven依赖项的最低JDK版本?

Posted

技术标签:

【中文标题】如何找到特定版本的maven依赖项的最低JDK版本?【英文标题】:How to find the minimum JDK version of a specific version of maven dependency? 【发布时间】:2017-03-21 17:44:07 【问题描述】:

现在我使用JDK1.5开发程序,所以我必须保证我要使用的maven依赖与JDK 1.5兼容。有时,最新版本需要高于 1.5 的 jdk,但旧版本可能适合。 但是如何找到特定版本的maven依赖的最低JDK版本呢? 我试过 mvnrepository.com 但找不到 jdk 要求。一些项目主页只显示最新版本的 jdk 需求。 任何人都可以帮助我吗?谢谢!

【问题讨论】:

我们是在讨论手动检查还是以编程方式检查最低 JDK 版本? 最好的解决方案是检查您通过animal-sniffer-maven-plugin 使用的依赖项,如果您使用其他依赖项,您的构建将失败。除此之外,我建议升级到 Java 7 或 8... 【参考方案1】:

您可以检查类文件的主要/次要版本。如果 JAR 是使用 Maven 构建的,您可以在 META-INF/MANIFEST.MF 文件中检查用于构建它的 JDK 版本,这很可能是最低版本。

在不下载 JAR 的情况下进行检查的一种方法是检查 maven Central 上的 POM,例如

http://search.maven.org/#artifactdetails%7Cnet.openhft%7Cchronicle-queue%7C4.5.15%7Cbundle

需要 1.8

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <compilerArgument>-Xlint:deprecation</compilerArgument>
                <compilerArgument>-XDignore.symbol.file</compilerArgument>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>

需要考虑的一点是,如果 Oracle 及其所有资源不免费支持 Java 7,您会吗?

【讨论】:

【参考方案2】:

大多数时候你可以这样做

 <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>java.sourceversion</source>
                <target>java.targetversion</target>
            </configuration>
        </plugin>
    </plugins>
</build>

这应该足够了。

【讨论】:

以上是关于如何找到特定版本的maven依赖项的最低JDK版本?的主要内容,如果未能解决你的问题,请参考以下文章

在 maven pom.xml 中更改传递依赖项的版本

Java / Maven如何使用使用项目中已使用的另一个依赖项的旧版本的依赖项

如何找到跨文件重命名和重新排序添加特定 Gradle 构建依赖项的 Git 提交?

如何在 Maven 中找出隐藏的依赖项和插件版本?

maven更新版本具体依赖

是否有一个 Maven 插件可以验证传递依赖项的冲突版本?