在运行时获取Maven工件版本
我注意到在Maven工件的JAR中,project.version属性包含在两个文件中:
META-INF/maven/${groupId}/${artifactId}/pom.propertiesMETA-INF/maven/${groupId}/${artifactId}/pom.xml
是否有建议的方式在运行时读取此版本?
回答:
你无需访问特定于Maven的文件即可获取任何给定库/类的版本信息。
你可以简单地使用getClass().getPackage().getImplementationVersion()
来获取存储在.jar-files
中的版本信息MANIFEST.MF
。幸运的是,Maven
足够聪明,不幸的是,默认情况下,Maven
也不将正确的信息写入清单!
相反,必须修改的设置<archive>
元素maven-jar-pluginto set addDefaultImplementationEntries
和addDefaultSpecificationEntriesto true
,如下所示:
<plugin> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
</plugin>
理想情况下,应将此配置放入公司pom或其他基本pom中。
<archive>
元素的详细文档可以在Maven存档文档中找到。
以上是 在运行时获取Maven工件版本 的全部内容, 来源链接: utcz.com/qa/397580.html