gpt4 book ai didi

java - ImplementedVersion 在 exec :java target 中无法访问

转载 作者:行者123 更新时间:2023-12-01 15:37:56 25 4
gpt4 key购买 nike

我已使用此 how2 将版本号添加到我们的产品中:http://www.christophkiehl.com/easy-way-to-display-your-apps-version-using-maven-and-manifest

当我现在使用 mvn assembly:single 构建 jar 时,我看到了正确的版本。但是当我用 mvn exec:java 运行所有内容时,我得到 null...

当我刚从非 jar 启动程序时,我必须做什么才能使 App.class.getPackage().getImplementationVersion() 不返回 null?

最佳答案

您用来添加版本号的技术仅在构建为 jar 时才有效。

实现相同目的的另一种方法是拥有一个属性文件,该文件在构建期间随项目版本进行更新,而该文件又由您的 java 代码读取。

假设,您在 src/main/resources 中有一个文件 version.properties,其中有一个条目

product.version=${project.version}

在调用App.class.getPackage().getImplementationVersion()的地方,您读取此属性并显示内容。

这在 jar 和非 jar 情况下都适用。

更新:您需要更新 pom 才能启用资源过滤 - 本质上添加如下代码片段(有关详细信息,请参阅 this)。

<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>

关于java - ImplementedVersion 在 exec :java target 中无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8579943/

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