有没有一种方法可以列出我所有Maven依赖项的Java版本?

8

假设我有一个Maven Java项目,我希望尽可能使用最低版本的Java。 它有许多依赖关系。 我是否能够查看所有已解析依赖项的JAR编译所使用的Java版本?


2
我不认为有办法,但是找到方法会很有趣! - Jan Zyka
由于JAR文件只是一组类文件,因此您可能需要逐个查看每个类,因为它们可能已使用不同的版本进行编译。 - rethab
@rethab 我只认为在fat-jar(也称为one-jar)中存在这种风险,而且我不希望far jars出现作为Maven依赖项。我认为只检查jar中的一个类以获得答案是一个安全的假设。 - Gimby
你可以尝试使用不同的Java版本编译项目,看看哪个版本能够工作。 - vitro
嗨@vitro。我肯定可以做类似的事情,但我认为这是一种反模式。原因如下。假设我无意中引入了一个不需要的依赖项,并且它比其他依赖项高一个版本的Java。所以我将我的pom升级到那个版本。然后我完成开发并在报告中看到我不需要该依赖项后将其删除。由于我从未确定它正是那个确切的jar导致我升级了版本,我人为地增加了我的构件的版本要求。通过识别依赖关系,我可以做出明智的决策。 - Jason Thompson
1个回答

8
如果您在项目中运行 mvn site 命令,其中一个默认生成的报告(“依赖项”报告)将提供有关依赖项的详细信息。
在运行 mvn site 命令后,在浏览器中打开 target/site/dependencies.html 文件。名为“Dependency File Details”的部分中有一张表格,其中一列是用于编译给定依赖项的 JDK 版本。
maven-project-info-reports-plugin 负责生成此信息。如果您只想从命令行生成单个 HTML 报告,则可以使用以下命令: mvn project-info-reports:dependencies 报告将位于与 mvn site 相同的位置,即 target/site/dependencies.html

太棒了!它不仅像我希望的那样为我解释了,而且底部还有一个摘要告诉我需要的最低jdk版本。 - Jason Thompson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接