目标:把springboot程序打包,并且上传到服务器,然后运行
springboot工程目录结构如下:
demo1.sh如下:
#!/bin/sh
## java env
export JAVA_HOME=/usr/java/jdk1.8.0_161
export JRE_HOME=$JAVA_HOME/jre
#工程名
API_NAME=demo1-0.0.1-SNAPSHOT
JAR_NAME=$API_NAME\.jar
#PID 代表是PID文件
PID=$API_NAME\.pid
#工程路径
BASE_PATH=$(cd `dirname $0`; pwd)
echo "current path =${BASE_PATH}"
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $JAR_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo ">>> ${JAR_NAME} is already running PID=${pid} <<<"
else
nohup $JRE_HOME/bin/java -Xms256m -Xmx512m -jar $BASE_PATH/$JAR_NAME >/dev/null 2>&1 &
echo $! > $PID
echo ">>> start $JAR_NAME successed PID=$! <<<"
fi
}
#停止方法
stop(){
is_exist
pidf=$(cat $PID)
#echo "$pidf"
echo ">>> api PID = $pidf begin kill $pidf <<<"
kill $pidf
rm -rf $PID
sleep 2
is_exist
if [ $? -eq "0" ]; then
echo ">>> api 2 PID = $pid begin kill -9 $pid <<<"
kill -9 $pid
sleep 2
echo ">>> $JAR_NAME process stopped <<<"
else
echo ">>> ${JAR_NAME} is not running <<<"
fi
}
#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo ">>> ${JAR_NAME} is running PID is ${pid} <<<"
else
echo ">>> ${JAR_NAME} is not running <<<"
fi
}
#重启
restart(){
stop
start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
exit 0
pom.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xxt.demo1</groupId>
<artifactId>demo1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo1</name>
<description>docker</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.14</version>
<!-- provided-编译的时候用,打包运行的时候不需要 -->
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<extensions>
<!-- wagon插件,把jar上传到服务器,并执行shell命令 -->
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.10</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- wagon插件,把jar上传到服务器,并执行shell命令 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<!-- 工程根目录 -->
<fromDir>./</fromDir>
<includes>target/*.jar,script/*.sh</includes>
<url>scp://{你的服务器账号}:{你的服务器密码}@{你的服务器ip}/opt/dev/server/demo1</url>
<commands>
<command>mv /opt/dev/server/demo1/target/demo1-0.0.1-SNAPSHOT.jar /opt/dev/server/demo1/demo1-0.0.1-SNAPSHOT.jar</command>
<command>mv /opt/dev/server/demo1/script/demo1.sh /opt/dev/server/demo1/demo1.sh</command>
<command>rm -rf /opt/dev/server/demo1/target</command>
<command>rm -rf /opt/dev/server/demo1/script</command>
<command>chmod 777 /opt/dev/server/demo1/demo1.sh</command>
<command>sh /opt/dev/server/demo1/demo1.sh start</command>
<command>sh /opt/dev/server/demo1/demo1.sh status</command>
</commands>
<displayCommandOutputs>true</displayCommandOutputs>
</configuration>
</plugin>
</plugins>
</build>
</project>
最后右键工程->Show in -> Terminal
输入命令
mvn clean package wagon:upload wagon:sshexec -DskipTests
然后回车
效果如下
- 大小: 58.6 KB
- 大小: 22.1 KB
分享到:
相关推荐
标题中的“基于SpringBoot大学校园二手书籍拍卖微信...这个项目是一个综合性的实践案例,涵盖了Web开发的多个方面,对于学习和理解SpringBoot、微信小程序开发,以及如何构建完整的线上拍卖系统,都有很高的参考价值。
总的来说,这个项目是一个集成了前端和后端的完整电商系统,利用了SpringBoot的高效性和微信小程序的便捷性,为用户呈现了一个全面的藏区特产销售平台。通过学习和分析这个项目,开发者可以提升自己的Java Web开发...
这个项目可能包含了完整的后台管理系统和前端展示,旨在实现线上鞋类产品秒杀功能,同时也考虑到了用户体验,通过微信小程序进行交互。 【描述】"基于SpringBoot鞋类秒杀商城.zip"的描述暗示了这是一个Java开发的...
该压缩包文件“基于ssm居住证申报系统微信小程序源码数据库文档.zip”是一个完整的项目资源包,主要用于毕业设计,涵盖了微信小程序开发以及后端服务器的实现。此项目利用了SSM(Spring、SpringMVC、MyBatis)框架与...
【标题】中的“基于微信小程序的付费自习室系统”是一个集成技术的应用实例,它利用微信小程序作为前端界面,为用户提供在线预订和支付功能,以便在自习室进行学习。这一系统通常包括用户管理、自习室资源管理、预约...
- 部署上线:打包应用,部署到服务器,进行线上环境的调整优化。 这个员工管理系统项目是IT专业学生提升实战技能的理想实践,涵盖了从需求分析到系统上线的完整流程,对于理解企业级应用开发有极大的帮助。通过...
最后,将项目打包部署到服务器,如AWS、阿里云等云服务提供商,以实现线上运行。 综上所述,这个基于Java和SpringBoot的毕业就业信息管理系统,融合了现代化的开发技术和管理理念,旨在为高校提供一套高效、安全、...
9. **部署上线**:打包项目,部署到服务器,确保线上环境正常运行。 以上是对基于SSM+jsp技术的金融支付终端管理系统的核心知识点介绍,涵盖了SSM框架的使用、SpringBoot的优势、微信小程序的接入以及项目实施的...
8. **部署上线**:打包项目,部署到服务器,进行线上调试。 通过这个项目,开发者可以学习到Java后端开发、前端Vue.js应用以及微信小程序的开发技巧,同时了解如何整合这些技术构建一个完整的管理平台。
【标题】: "基于SSM的网上订餐系统" 该标题揭示了项目的核心技术栈,即Spring、SpringMVC...通过研究和运行这个项目,开发者可以深入了解SSM框架的应用、微信小程序的开发,以及如何构建一个完整的线上订餐服务系统。
【SSM电子竞技管理平台】是一个综合性的项目,利用了Java技术栈,特别是Spring、SpringMVC和MyBatis三个框架的集成(SSM),以及SpringBoot和微信小程序的前沿技术,旨在为电子竞技赛事的组织、管理和参与提供便捷的...
- 部署上线:打包项目,部署到服务器,进行线上测试。 这个系统不仅涵盖了丰富的IT技术,而且将理论与实践相结合,是学习和教学数字图像处理的理想平台。通过实际操作,用户可以深入理解图像处理的原理,并掌握...
CRMEB商城JAVA版,SpringBoot + Maven + Swagger + Mybatis Plus + Redis + Uniapp +Vue 包含移动端、小程序、PC后台、Api接口;有产品、用户、购物车、订单、积分、优惠券、营销、余额、权限、角色、系统设置、组合...
5. **部署文件**:如`pom.xml`(Maven项目)或`build.gradle`(Gradle项目),用于构建和打包项目。 6. **README**:可能包含项目介绍、如何运行和部署的指南。 7. **测试文件**:JUnit或其他测试框架编写的单元测试...
【标签】:“毕业设计 Java springboot ssm 微信小程序” 这里的标签提供了更多关于项目的信息。"毕业设计"意味着这个系统可能是某位学生作为其毕业作品完成的,通常这类设计需要涵盖全面的技术应用和实际问题解决...
“微信小程序”标签暗示了该项目还包含一个与之配套的微信小程序版本,方便用户通过微信平台进行操作。"springboot"虽然在标题中未提及,但在标签中出现,可能意味着部分或全部服务采用了Spring Boot框架,它简化了...
5. **部署文件**:如`pom.xml`(Maven项目配置文件)或`build.gradle`(Gradle构建文件),用于构建和打包应用。 6. **测试文件**:如JUnit测试用例,确保功能的正确性。 7. **文档**:可能包含需求文档、设计文档、...
该平台不仅支持网页版,还通过微信小程序扩展到移动端,为用户提供全方位的购物体验。 【描述】:这个项目的核心目标是打造一个现代化的社区生鲜电商平台,它涵盖了商品展示、用户注册登录、购物车管理、订单处理、...
5. **构建脚本**:如pom.xml(Maven项目)或build.gradle(Gradle项目),用于构建和打包项目。 6. **README**:介绍项目背景、技术栈、部署指南等内容。 7. **测试代码**:JUnit或其他测试框架的测试类,用于验证...
【标题】"基于ssm+vue理发店会员管理系统"是一个综合性的项目,它结合了Java后端技术SSM(Spring、SpringMVC、MyBatis)与...同时,由于涉及微信小程序,开发者还能了解到如何将线上服务拓展到移动平台,提升用户体验。