Shell Mvn启动SpringBoot项目

本文介绍了一种在Linux环境下简化SpringBoot项目调试流程的方法。通过编写shell脚本实现自动停止旧进程、更新代码并重新启动SpringBoot应用,极大地提高了开发效率。

Linux运行Springboot项目,因为不是正式部署,开发中需不断地调试,修改,更新,重启。每次都需要经过多步,所以考虑shell自动运行。

#!/bin/bash
name=$(lsof -i:10001|tail -1|awk '"$1"!=""{print $2}')
if [ -z $name ]
then
        echo "No process can be used to killed!"
else
        id=$(lsof -i:10001|tail -1|awk '"$1"!=""{print $2}')
        kill -9 $id

        echo "Process name=$name($id) kill!"
fi

cd /root/apps/project_name
echo 'cd /root/apps/project_name'
git pull

nohup mvn spring-boot:run  -Dspring-boot.run.jvmArguments="-Duser.timezone=GMT+8" >output 2>&1 &
echo 'start sucess!'
exit 0

说明:
10001为程序运行端口,根据lsof -i:port查找已运行的程序,如果存在则kill该进程。
进入程序目录:cd /root/apps/project_name
执行 git pull (参考之前发表的博客,git免密码拉取代码)
运行 mvn spring-boot:run 具体参数可自行修改,也可以逐步打包,运行java -jar xx.jar

进入服务器,创建脚本 vi start.sh,编写之后保存脚本。
授权可执行:chmod u+x start.sh
运行即可:./start.sh

### Spring Boot 项目启动的方法 Spring Boot 提供了多种灵活的方式来启动项目,以下是常见的几种方法: #### 方法一:通过 IDE 启动 大多数开发者会使用集成开发环境(IDE),比如 IntelliJ IDEA 或 Eclipse 来运行 Spring Boot 应用程序。只需找到 `main` 函数所在的类并点击运行按钮即可完成启动[^1]。 ```java @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` #### 方法二:通过 Maven 插件启动 Maven 是构建 Java 项目的常用工具之一,它提供了专门用于运行 Spring Boot 的插件。可以利用以下命令实现应用的启动: ```bash mvn spring-boot:run ``` 如果需要传递参数,则可按照如下方式进行操作: ```bash mvn spring-boot:run -Drun.arguments="--server.port=8888" ``` 上述命令能够指定服务器端口为 8888 运行服务[^3]。 #### 方法三:打包成 JAR 文件后启动Spring Boot 工程构建成一个独立的 JAR 文件也是一种常用的部署形式。首先执行打包指令: ```bash mvn clean package ``` 之后可通过 java 命令加载该文件来激活服务: ```bash java -jar target/demo-0.0.1-SNAPSHOT.jar ``` 这种方式适合于生产环境中正式上线的应用实例。 #### 方法四:通过 Gradle 构建工具启动 对于采用 Gradle 而不是 Maven项目来说,也可以借助 gradlew 脚本来迅速开启工程: ```bash ./gradlew bootRun ``` 此脚本同样支持自定义配置项输入功能。 #### 方法五:以 WAR 包的形式部署到 Servlet 容器中 当希望把 Spring Boot 应用作为传统 Web 应用的一部分时,可以选择将其打成 war 包,并放置于 Tomcat 等外部容器里工作。这要求修改 pom.xml 设置 packaging 类型为 war 并移除嵌入式的 tomcat 组件依赖关系。 #### 方法六:编写 Shell/批处理脚本自动化启动流程 为了简化重复性的运维动作或者满足特定场景下的需求,还可以设计专属的 shell (Linux/macOS 下) 或者 bat 批次文件(Windows 上),从而一键式控制整个系统的启停过程[^2]。 #### 方法七:云平台上的自动化部署与启动 现代软件架构越来越倾向于微服务模式加云计算解决方案相结合的设计思路。因此很多情况下可以直接上传源码至各大主流云端服务平台(AWS Elastic Beanstalk、Heroku etc.)让其自行负责编译、测试直至最终发布环节中的各个环节管理事务。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值