从maven的pom.xml代码中检索版本号的最简单方式是什么,也就是编程方式?

推荐答案

假设您使用的是Java,您可以:

  1. (最常见的)在您的src/main/resources目录中创建一个.properties文件(但在步骤4中,您可以告诉它寻找其他地方).

  2. 使用项目版本的标准Maven属性设置.properties文件中某些属性的值:

    foo.bar=${project.version}
    
  3. 在Java代码中,将属性文件中的值作为类路径中的资源加载(谷歌提供了大量的示例,但只有here's an example for starters个).

  4. 在Maven中,启用资源筛选.这将导致Maven将该文件复制到输出类中,并在复制过程中转换资源,解释属性.你可以找到一些信息here,但你主要只是在你的pom中这样做:

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

您还可以获得其他标准属性,如project.nameproject.description,甚至放入POM<properties>中的任意属性等.资源过滤与Maven配置文件相结合,可以在构建时为您提供可变的构建行为.当您在运行时使用-PmyProfile指定配置文件时,这可以启用属性,然后这些属性可以显示在您的构建中.

Java相关问答推荐

LocalTime解析截断时间的第二个值

Java应用程序RAC感知

在Spring Boot中测试时出现SQL语法错误

收听RDX中用户数据的变化

将linkedHashMap扩展到Java中的POJO类

@ IdClass with @ Inheritance(策略= InheritanceType. SINGLE_TABLE)

滚动视图&不能在alert 对话框中工作(&Q;&Q;)

如何调整工作时间日历中的时间

Java LocalTime.parse在本地PC上的Spring Boot中工作,但在Docker容器中不工作

Java:使用Class.cast()将对象转换为原始数组

如何将其他属性引用到log4j2 yaml配置中?

如何使用MapStrCut转换双向链接

从泛型枚举创建EnumMap

具有最大共同前景像素的图像平移优化算法

如何使用WebEnvironment.RANDOM_PORT获得第二个随机端口?

用于Java的Visual Studio代码完成不起作用

如何使用Java对随机生成的字母数字优惠券代码进行过期设置

如何制作回文程序?

在Spring Boot中使用咖啡因进行缓存

如何使用Rascal Evaluator从编译的JAR访问Rascal函数?