You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建Bash alias运行带版本号的Maven构建jar包 无需硬编码版本

实现动态版本号的Bash alias配置方案

你可以通过Shell参数展开或者Maven内置命令动态提取版本号,无需硬编码,以下是两种可直接使用的方案:

方案1:从pom.xml提取版本号(稳定性最高)

Maven项目的版本号统一存储在pom.xml中,通过官方命令提取不会出现匹配错误,将以下内容添加到~/.bashrc(使用Zsh则添加到~/.zshrc)文件末尾即可:

alias start-my-app='(cd /替换为你的项目根目录绝对路径 || exit 1; \
# 调用Maven命令静默提取项目版本号
APP_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout); \
# 启动应用,自动填充版本号
java -jar my-app/target/my-app-${APP_VERSION}-microservice.jar --VERSION=${APP_VERSION%-*} --server.port=9032)'

配置说明:

  • 开头的cd命令切换到项目根目录,避免相对路径找不到文件,cd失败则直接终止执行
  • 末尾的${APP_VERSION%-*}是Shell参数展开语法,会移除版本号末尾从最后一个-开始的内容,自动把1.10.0-SNAPSHOT处理为1.10.0匹配参数要求

方案2:匹配target目录jar包提取版本号(启动速度更快)

如果不需要调用Maven命令,且target目录下只会存在一个符合命名规则的jar包,可以用文件名匹配的方式实现:

alias start-my-app='(cd /替换为你的项目根目录绝对路径/my-app/target || exit 1; \
# 匹配唯一符合规则的jar包
JAR_NAME=$(ls my-app-*-microservice.jar); \
# 从jar包名称中提取完整版本号
APP_VERSION=${JAR_NAME#my-app-}; 
APP_VERSION=${APP_VERSION%-microservice.jar}; \
# 启动应用
java -jar ${JAR_NAME} --VERSION=${APP_VERSION%-*} --server.port=9032)'

配置完成后执行source ~/.bashrc(Zsh用户执行source ~/.zshrc)让配置生效,之后直接输入start-my-app即可启动应用。

内容的提问来源于stack exchange,提问作者Alan Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:54:04