当前位置: 首页 > news >正文

Maven 生成编译时间和版本Java类

本文使用Maven插件来自动生成一个 Version.java 类,可以在Java代码中使用里面对应的常量,获取当前版本号和构建时间。

Maven编译后自动生成的 Version.java 文件内容如下所示:

package com.shanhy.demo;public final class Version {public static String NUMBER = "0.0.41-SNAPSHOT";public static String BUILD_TIME = "2023-08-15 10:54:16";
}

pom.xml 中插件的使用示例如下所示:

<plugin><groupId>org.codehaus.mojo</groupId><artifactId>build-helper-maven-plugin</artifactId><version>3.4.0</version><executions><execution><id>timestamp-property</id><goals><goal>timestamp-property</goal></goals><configuration><name>current.time</name><pattern>yyyy-MM-dd HH:mm:ss</pattern><timeZone>GMT+8</timeZone><locale>zh_CN</locale></configuration></execution></executions>
</plugin>
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-antrun-plugin</artifactId><version>3.0.0</version><executions><execution><goals><goal>run</goal></goals><phase>generate-sources</phase><configuration><target><property name="src.dir" value="${project.build.sourceDirectory}"/><property name="package.dir" value="com/shanhy/demo"/><property name="package.name" value="com.shanhy.demo"/><!--maven.build.timestamp是UTC时间,跟北京时间有8个小时的时差,使用插件 build-helper-maven-plugin:timestamp-property 解决这个时差问题--><!--<property name="buildtime" value="${maven.build.timestamp}"/>--><property name="buildtime" value="${current.time}"/><!--生成一个 Version.java 文件,里面生成常量,可以在Java代码中直接使用--><echo file="${src.dir}/${package.dir}/Version.java"message="package ${package.name};${line.separator}${line.separator}"/><echo file="${src.dir}/${package.dir}/Version.java" append="true"message="public final class Version {${line.separator}"/><echo file="${src.dir}/${package.dir}/Version.java" append="true"message="    public static String NUMBER = &quot;${project.version}&quot;;${line.separator}"/><echo file="${src.dir}/${package.dir}/Version.java" append="true"message="    public static String BUILD_TIME = &quot;${buildtime}&quot;;${line.separator}"/><echo file="${src.dir}/${package.dir}/Version.java" append="true"message="}${line.separator}"/></target></configuration></execution></executions>
</plugin>

你也可用这种方法生成普通的版本配置文件,例如 version.properties,上文生成 java 文件是为了在 Java 代码中的相关业务中直接使用常量。


(END)

http://www.lryc.cn/news/130593.html

相关文章:

  • 关于uniapp微信小程序scroll-view组件使用show-scrollbar隐藏不了滚动条
  • CSS:filter滤镜 详解(用法 + 代码 + 例子 + 效果)
  • 【Unity每日一记】Physics.Raycast 相关_Unity中的“X光射线”
  • 软件报错msvcr90.dll丢失的解决方法,亲测可以修复
  • 第一百一十八回 如何获取蓝牙连接状态
  • C++11并发与多线程笔记(12) windows临界区、其他各种mutex互斥量
  • [MAUI]在.NET MAUI中实现可拖拽排序列表
  • Linux 内核内存管理 pfn_to_online_page宏
  • 『C语言初阶』第八章 -结构体
  • chatgpt汇编,两个关于chatgpt的问题
  • ps丢失d3dcompiler_47.dll怎么办,启动无反应,分享三个解决方法
  • 第三章nginx详解
  • 【二叉树前沿篇】树
  • python3 0基础学习----数据结构(基础+练习)
  • 计算机科学中的“旅行商问题”
  • QT:自定义控件(Connect使用,子控件连接)
  • 目录——车载网络安全
  • Visual Studio 如何放大代码字体的大小
  • Verilog同步FIFO设计
  • Php“牵手”lazada商品详情页数据采集方法,lazadaAPI接口申请指南
  • Sentinel 规则持久化
  • 元宇宙时代超高清视音频技术白皮书关于流媒体协议和媒体传输解读
  • 【计算机设计大赛】国赛一等奖项目分享——基于多端融合的化工安全生产监管可视化系统
  • 深入理解【二叉树】
  • RequestRespons
  • UniApp 使用命令创建页面的详细指南
  • Opencv 图像的读取与写入
  • 关于rinex3.x广播星历文件中时间系统的说明
  • Ansible 实战
  • 三、单元测试