目标:把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 多模块 maven 实例 亲测可运行 ···············
这是一个springboot+maven写的demo,主要演示springboot项目通过maven插件,将依赖与配置文件打包到jar包外部,实现灵活的项目管理.仅供参考学习
当前案例中包含一整套的代码和word文档,非常适合新手... 主要是通过maven打包加载不同环境的properties文件 然后将对于的属性绑定到指定的实体对象中;然后通过调用接口可以看到加载不同环境控制台打印的内容是不一样的
基于Springboot+mybatis的maven项目
springboot 的maven依赖包,含有所有maven依赖,网络不好的可以来下。压缩包3.
总结了我花了一周配置好jenkins的一些坑 这些东西都是自己话时间弄的 网上搜不到答案哟 随便一个坑都能卡几天~~如果有疑问可以留言看到就回
Spring Boot项目使用maven-assembly-plugin根据不同环境打包成tar.gz或者zip
基于 SpringBoot 构建的 Maven 工程,技术栈包括但不限于 SpringData JPA + Mysql + JWT + Redis + RabbitMQ + WebService
sprintboot maven 打包分离lib jar 资源文件 properties xml yml 详细信息查看我的博客 https://mp.csdn.net/postedit/80274087 java -jar -cp 启动
springboot(非maven)jar包(只包含web的、包含web和jdbc的、包含web、jdbc、redis/mongo/rabbitmq的共3种)
在做springBoot项目时,下载了一堆Maven,此文件使用很稳定,记录一下
MyZone:初学SpringBoot,通过Maven构建SpringBoot小程序;基于SSH框架的在线商城源代码,皆已实现
1.SpringBoot Maven插件打包2.maven-jar-plugin+maven-dependency-plugin打包正常的main函数程序,我们
当前案例中包含一整套的代码和word文档,非常适合新手代码简单易懂; 主要是通过maven打包配合springboot application.properties文件配置实现通过打包来完成加载不同环境的配置内容;
springboot项目通过maven命令实现一键部署至本地tomcat容器
项目基本结构是SpringBoot,集成了docker-maven插件实现build完的镜像上传到私服,然后用 Jenkins构建实现docker集群一键自动化部署
java springboot redisson mybatis maven.zip
idea+springBoot+maven 搭建项目 配置Oracle mybatis简易配置及数据查询
springboot(web项目,非maven)
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring...网上很多教程都是基于maven情况下的,而很多小伙伴没有使用到maven,jar包就成了一个很大的问题,我这边整理了springboot所使用到的jar包