从 Maven 生成的 Jar 中提取 artifactId 和版本号
Posted
技术标签:
【中文标题】从 Maven 生成的 Jar 中提取 artifactId 和版本号【英文标题】:Extract artifactId and version number from Maven-generated Jar 【发布时间】:2020-04-08 22:22:12 【问题描述】:如果有一堆 Maven 创建的 Jar 文件。它们的名称包括 artifactId 和版本号。我想从 Jar 文件名中提取 artifactId 和版本号。然而,事实证明这远非易事。我有诸如qpid-broker-plugins-amqp-0-8-protocol-7.0.6.jar
之类的文件名,其中有两个部分看起来像一个版本号(0-8
和7.0.6
),但只有后者是版本号。然后是adminpages-4.11.0-beta-20191212-150315-7eec2eb4c.jar
,其中4.11.0-beta-20191212-150315-7eec2eb4c
是版本。因此我的问题是是否有一种安全可靠的方法从 Jar 文件名中提取版本号?
【问题讨论】:
您能否详细解释一下您要解决的问题类型? 我想列出 Web 应用程序中使用的库。我扫描 WEB-INF/lib 文件夹,然后需要从文件名中提取名称和版本作为单独的部分。但似乎没有通用的方法可以在所有情况下都做到这一点。 【参考方案1】:没有。
文件名通常采用以下格式
artifactId-version-classifier.extension
如果分类器不为空,否则
artifactId-version.extension
所有三个元素(artifactId
、version
、classifier
)都可以是任意字符串。
如果您需要找到给定 jar 的坐标,还有其他更可靠的方法。
【讨论】:
以上是关于从 Maven 生成的 Jar 中提取 artifactId 和版本号的主要内容,如果未能解决你的问题,请参考以下文章