gpt4 book ai didi

Java在运行时获取maven依赖的版本

转载 作者:行者123 更新时间:2023-12-05 06:22:46 24 4
gpt4 key购买 nike

是否可以在运行时检索特定 Maven 依赖项的版本?

例如对于 pom.xml:

<dependency>
<groupId>foo.bar</groupId>
<artifactId>foobar</artifactId>
<version>1.0</version>
</dependency>

我想检索具有 Artifact ID foobar 的特定依赖项的版本 1.0

最佳答案

这里最有问题的部分是通过名称查找 JAR。不幸的是,在 Java 中没有 100% 可靠的方法。要按名称获取 JAR,您需要扫描可能并不总是存在的正在运行的应用程序的类路径(例如,因为使用了自定义类加载器或使用了模块路径而不是类路径)。

但让我们假设您没有使用任何奇特的功能,如自定义类加载器,并且您的类路径包含所有 Maven 依赖项。你现在需要做什么?我将尝试描述一个粗略的算法:

  • 从类路径中检索所有 JAR 文件的路径。
  • 扫描每个 JAR 文件并找到文件 pom.properties。它位于 META-INF/maven/{groupId}/{artifactId}。
  • pom.properties 中找到 version 属性的值。

同样,这个解决方案并不完全可靠。您必须决定:您是否真的需要版本信息以及出于什么目的?

关于Java在运行时获取maven依赖的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58956946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com