java - java文件中的Maven版本号

标签 java maven ant build m2eclipse

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

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

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

最佳答案

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

或者,您可以使用 resource filtering 显式编写新的 version.properties 文件。 .

如果您将以下内容放入您的 POM:

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

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

version = ${project.version}

Maven 将替换从 POM 中读取的版本,然后您的应用程序只需要读取 version.properties 资源并查询 version 键。

关于java - java文件中的Maven版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8829147/

相关文章:

java - 如何在 ant 的构建文件中包含类?

Java并发对象池?

java - 参数类型的运算符 < 未定义

java - 如何使用 ObjectWeb ASM 获取方法签名?

security - Sonatype Nexus - 无法找到请求目标的有效认证路径

java - 如何使用 Ant 删除目录集?

java - 使用 arrayList java 保存获取值

maven - java.lang.IllegalStateException : Could not find backup for factory javax. faces.context.FacesContextFactory

java - 我在 Apache Tika 的 POM 文件中添加 Jacoco Maven 插件来获取代码覆盖率。但我这样做遇到了问题

内部类的 Java NoClassDefFoundError