Java 文件中的 Maven 版本号
我来自ANT,您可以在其中调用.java文件,通过执行某些方法获取版本号。我想在我的新pom中做类似的事情.xml自动获得正确的版本号。我需要应用程序了解它自己的版本,同时Maven知道版本得到了正确的构建。将版本信息表增加一倍是没有选择的。
或者Maven可以在构建期间/之前创建新的.java文件吗?
我可以想象出很多方法来实现这一点,但是在Maven项目中是否有最佳实践方法来做到这一点?
我来自ANT,您可以在其中调用.java文件,通过执行某些方法获取版本号。我想在我的新pom中做类似的事情.xml自动获得正确的版本号。我需要应用程序了解它自己的版本,同时Maven知道版本得到了正确的构建。将版本信息表增加一倍是没有选择的。
或者Maven可以在构建期间/之前创建新的.java文件吗?
我可以想象出很多方法来实现这一点,但是在Maven项目中是否有最佳实践方法来做到这一点?
构建 JAR 时,Maven 会将 和 文件写入目录。然后,您可以在应用程序中读取其中一个版本。pom.xml
pom.properties
META-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.properties
version
我将向您推荐SO上的这个主题:如何在Maven中读取外部属性文件。特别是,请查看Dougnukem的答案,该答案描述了如何将外部属性文件读取到Maven中。您可以将其用作共享源,用于控制 Maven 构建脚本和 Java 应用程序中的版本号。