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

不符合网站外链建设原则的是工作5年判若两人

不符合网站外链建设原则的是,工作5年判若两人,网站不备案怎么做网页淘宝客,建设网站怎么加购物车需求 项目想要生成一个更新版本号,格式为v2.0.20250101。 其中v2.0为版本号,更新时进行配置;20250101为更新日期,版本更新时自动生成。 实现思路 创建一个配置文件version.properties,在其中配置版本号&#xff1b…

需求

项目想要生成一个更新版本号,格式为v2.0.20250101

其中v2.0为版本号,更新时进行配置;20250101为更新日期,版本更新时自动生成

实现思路

创建一个配置文件version.properties,在其中配置版本号;

# 版本号
version.number=v2.0
# 版本更新时间
version.build-date=maven-build-timestamp

再写一个类VersionController读取配置文件中的属性值

同时定义一个接口,将version.numberversion.build-date拼接后返回,即为版本号

前端调用这个接口,拿到版本号后展示。

如何读取自定义配置文件,可以看我写的这篇文章:读取自定义配置文件的属性值

Maven replacer插件替换更新时间

这里有一个比较麻烦的点是,版本更新时间 我不想手动去写,而是在版本更新时自动生成就好。

这里就要用到 maven 的一个插件 replacer,这个插件可以在 maven 构建过程中执行文本替换操作

因此,使用这个插件,在 maven 打包时将配置文件version.propertiesversion.build-date 值,替换为 maven 的打包时间,即实现了版本更新时间的自动生成。

<build><plugins><!--replacer插件,用于替换src/main/resources/version.properties中的版本更新时间,以生成版本号--><plugin><groupId>com.google.code.maven-replacer-plugin</groupId><artifactId>replacer</artifactId><version>1.5.3</version><executions><execution><!-- 可以在这个阶段进行代码编译、资源文件处理、生成文档、运行单元测试等;使用这个无法直接替换class文件的值 --><!--<phase>prepare-package</phase>--><!-- 可以在这个阶段设置一些默认的属性值、配置系统属性、加载外部资源文件等 --><phase>initialize</phase><goals><goal>replace</goal></goals></execution></executions><configuration><!--指定文件路径--><basedir>${basedir}/src/main/resources</basedir><!--指定具体的文件名--><includes><include>**/version.properties</include></includes><replacements><replacement><!--替换的目标文本--><token>maven-build-timestamp</token><!--替换后的值--><value>${maven.build.timestamp}</value></replacement></replacements></configuration></plugin></plugins>
</build>

完整代码

定义配置文件src/main/resources/version.properties

# 版本号
version.number=v2.0
# 版本更新时间
version.build-date=maven-build-timestamp

pom.xml 中使用 replacer插件:

  • 插件效果:在 maven 打包时将配置文件version.propertiesversion.build-date 值,替换为 maven 的打包时间
  • 打包时间的格式可以通过 properties 属性maven.build.timestamp.format更改。
<properties><!--定义打包时间的格式--><!--yyyyMMddHHmmss--><maven.build.timestamp.format>yyyyMMdd</maven.build.timestamp.format>
</properties><build><plugins><!--replacer插件,用于替换src/main/resources/version.properties中的版本更新时间,以生成版本号--><plugin><groupId>com.google.code.maven-replacer-plugin</groupId><artifactId>replacer</artifactId><version>1.5.3</version><executions><execution><!-- 可以在这个阶段进行代码编译、资源文件处理、生成文档、运行单元测试等;使用这个无法直接替换class文件的值 --><!--<phase>prepare-package</phase>--><!-- 可以在这个阶段设置一些默认的属性值、配置系统属性、加载外部资源文件等 --><phase>initialize</phase><goals><goal>replace</goal></goals></execution></executions><configuration><!--指定文件路径--><basedir>${basedir}/src/main/resources</basedir><!--指定具体的文件名--><includes><include>**/version.properties</include></includes><replacements><replacement><!--替换的目标文本--><token>maven-build-timestamp</token><!--替换后的值--><value>${maven.build.timestamp}</value></replacement></replacements></configuration></plugin></plugins>
</build>

定义类 VersionController:

  • 使用 @PropertySource 读取配置文件,@Value 读取配置文件的属性值。
  • 接口方法 getVersion 中将 versionNumber 和 buildDate,使用.拼接后返回。
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@PropertySource(value = {"classpath:version.properties"})
@RequestMapping("/version")
public class VersionController {@Value("${version.number}")private String versionNumber;@Value("${version.build-date}")private String buildDate;@GetMappingpublic String getVersion() {return String.join(".", versionNumber, buildDate);}}

测试

项目执行 maven 打包命令

在这里插入图片描述

找到打包后的 jar 目录
在这里插入图片描述

目录中输入 cmd 进入命令行窗口,命令行执行java -jar jar包名启动项目(jar包名 需替换为你自己的)
在这里插入图片描述

进行浏览器访问接口验证

在这里插入图片描述

版本更新时的操作

在版本更新时,需要去修改配置文件version.propertiesversion.number 版本号数字,之后 git push 本次修改。

然后,使用 Jenkins 重新打包项目,版本号就会自动更新。


如果有帮助的话,可以点个赞支持一下嘛🙏

http://www.dtcms.com/wzjs/599773.html

相关文章:

  • 如何做网站管理维护wordpress控制文章显示数量
  • 成都眉山网站建设东莞网站建设地点优化
  • 宁波正规网站seo公司能自己做效果图的网站
  • 网站定制要求无锡名气大的网页设计
  • 城乡建设部网站造价工程师查询国际新闻最新消息今天新闻大
  • 国外做鞋子的网站吗app定制软件开发
  • 安庆哪里做网站设计类专业哪个好
  • 做网站后台开发工资临沂网站建设兼职
  • 网站标题psd推广文案撰写
  • 网站推广基本方法优酷有wordpress插件吗
  • 网站上海备案淮安市专用汽车制造有限公司网页设计
  • 做线路板的去哪个网站找工作西安网站建设聚星互联
  • 通辽网站建设招聘石家庄网站建设教程
  • 网站开发技术期末考试 及答案wordpress 主机伪静态404.php seo
  • 自己怎么在网上做网站丹东做网站公司
  • 做盗版频网站吉大建设工程学院官方网站
  • 临沂企业自助建站seo教程网站优化推广排名
  • 上海网站备案蓝盾信息做网站吗
  • 北京网站建设明细名片式网站模板
  • 搭建网站流程视频uniapp商城app整套源码
  • 做外贸仿牌网站超级网站建设
  • dw可以做移动端网站建设单位网站的重要性
  • 石狮服装城商家微网站建设天网网站建设
  • 浏阳商务局网站溪江农贸市场建设导航网站系统
  • 公司做网站的费用会计分录学网站建设需要什么软件有哪些
  • 网站建设规模用什么形容哪些网站可以做海报
  • 建设网站需要购买企业网站开发报价形式
  • 哪个网站可以接广告做wordpress视频解析
  • 深圳知名网站wordpress 自动保存
  • 如何做音乐分享类网站桂林做网站哪家公司好