子模块应该有独立的版本号,启动脚本动态获取最新的jar包版本

本文探讨了在SpringBoot父子工程中,特别是微服务架构下,为子模块分配独立版本号的重要性,包括独立版本管理、依赖协调、CI/CD自动化和文档沟通。同时提供了一种动态获取并启动最新jar包版本的启动脚本示例。
摘要由CSDN通过智能技术生成

子模块应该有独立的版本号

SpringBoot父子工程中,每个子模块都是一个微服务,子模块应该有独立的版本号吗?

在SpringBoot的父子工程架构中,每个子模块通常代表一个逻辑上独立的组件或服务,尤其是当这些子模块被设计为微服务时。对于是否应该给每个子模块分配独立的版本号,这取决于你的项目管理和部署策略。

建议做法

  1. 独立版本管理:如果每个子模块(微服务)都是完全独立开发、部署和维护的,那么为每个子模块分配独立的版本号是有益的。这样做可以让每个微服务的更新和回滚更加灵活,便于追踪每个服务的变更历史和依赖关系,同时也符合微服务架构的理念——服务的自治性。

  2. 依赖管理和协调:虽然子模块可以有独立版本,但父工程的POM.xml可以用来管理这些子模块间的共享依赖版本,确保整个项目中使用的依赖版本一致,减少版本冲突。例如,你可以在父POM中定义 <properties> 标签来集中管理版本号,子模块引用这些属性即可。

  3. 持续集成/持续部署(CI/CD):在实施持续集成和持续部署流程时,为每个微服务分配独立版本号有助于自动化流程中识别和部署特定版本的服务,提高部署的精确度和效率。

  4. 文档与沟通:独立的版本号也便于团队成员之间的沟通以及对外部团队或客户的说明,清晰地表明每个服务的更新内容和兼容性。

因此,尽管父工程提供了一个统一的管理层面,子模块根据其独立性和部署需求,采用独立的版本号管理策略是推荐的做法。

启动脚本动态获取最新的jar包版本

jar包带版本号后,启动脚本应该怎么写?是要每次都修改启动脚本中的版本号吗?

为了避免每次更新jar包版本时都需要手动修改启动脚本,你可以采取一些动态的方式引用jar包,这样就无需手动更改启动脚本中的版本号了。下面是一个示例脚本,展示了如何动态地获取最新的jar包版本并启动它:

#!/bin/bash

# 设置基础变量
APP_NAME="your-app-name" # 应用名称
APP_HOME="/path/to/your/app/home" # 应用主目录
JAVA_HOME="/path/to/java/home" # Java 安装路径

# 动态获取最新jar包(假设jar包命名规则包含版本号,如app-1.2.3.jar)
LATEST_JAR=$(ls ${APP_HOME}/${APP_NAME}-*.jar | sort -t '.' -k 2,2n -k 3,3n -k 4,4n | tail -n 1)

# 设置Java启动参数
JAVA_OPTS="-Xms256m -Xmx512m -Dspring.profiles.active=prod"

# 输出将要启动的jar包信息
echo "Starting $APP_NAME with $LATEST_JAR"

# 执行启动命令
nohup ${JAVA_HOME}/bin/java ${JAVA_OPTS} -jar ${LATEST_JAR} > /dev/null 2>&1 &

# 输出进程ID以便跟踪
echo "$! is the pid of $APP_NAME"

这个脚本做了以下几件事:

  1. 动态查找最新版本jar包:使用ls命令配合正则表达式找到所有符合模式(如your-app-name-*.jar)的jar包,然后通过sort命令按版本号排序(这里假设版本号格式为x.y.z),最后取最高版本(tail -n 1)。
  2. 配置Java选项:可以根据需要调整JAVA_OPTS以适应不同环境和性能需求。
  3. 无挂断启动:使用nohup命令后台启动应用,并重定向输出,避免因终端关闭而停止服务。
  4. 输出PID:启动后输出进程ID,便于后续监控和管理。

这样设置后,当你更新jar包版本并放入应用目录时,脚本会自动找到并启动最新版本,无需手动调整脚本内容。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋冠巡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值