我的目录中有很多jar文件:
如何从文件名中获取库名称和版本?
是正则表达式((?:(?! - \ d)\ S)+) - (\ S * \ d \ S *(?: - SNAPSHOT)?)。jar $对提取名称和版本有效吗? / p>
答案 0 :(得分:1)
JAR文件名中的版本号仅仅是Maven构建的JAR的约定和默认值。它可能已被覆盖,并且从文件名中读取版本号并不总是可靠的。
从JAR读取版本号的更可靠方法是查看JAR文件。根据JAR的构建方式,您可以在这里选择几个选项:
META-INF/maven/.../pom.properies
和pom.xml
并阅读其中的版本 - 这应该适用于Maven构建的二进制文件Specification-Version
或Implementation-Version
属性下的META-INF / MANIFEST.MF 如果失败,则返回读取JAR名称的版本号,因为没有其他可用信息。
答案 1 :(得分:0)
不同库的命名策略可能不同,因此您无法使用一个规则从包名称中提取名称/版本,有关详细信息,请查看项目文档。
如果是Maven,您可以使用finalName
pom.xml
配置选项配置构建工件的最终名称。 Maven docs为pom结构提供了很好的introduction。以下是docs的示例:
<build>
...
<finalName>${artifactId}-${version}</finalName>
...
</build>