Java 文件中的 Maven 版本号

2022-09-03 00:39:38

我来自ANT,您可以在其中调用.java文件,通过执行某些方法获取版本号。我想在我的新pom中做类似的事情.xml自动获得正确的版本号。我需要应用程序了解它自己的版本,同时Maven知道版本得到了正确的构建。将版本信息表增加一倍是没有选择的。

或者Maven可以在构建期间/之前创建新的.java文件吗?

我可以想象出很多方法来实现这一点,但是在Maven项目中是否有最佳实践方法来做到这一点?


答案 1

构建 JAR 时,Maven 会将 和 文件写入目录。然后,您可以在应用程序中读取其中一个版本。pom.xmlpom.propertiesMETA-INF/maven/[group ID]/[artifact ID]

或者,可以使用资源筛选显式编写新的 version.properties 文件。

如果您在POM中放入以下内容:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

然后将模板放入 src/main/resources 目录中,如下所示:version.properties

version = ${project.version}

Maven 将在版本中替换读出的 POM,然后您的应用程序只需要读取资源并查询密钥即可。version.propertiesversion


答案 2

我将向您推荐SO上的这个主题:如何在Maven中读取外部属性文件。特别是,请查看Dougnukem的答案,该答案描述了如何将外部属性文件读取到Maven中。您可以将其用作共享源,用于控制 Maven 构建脚本和 Java 应用程序中的版本号。


推荐