1.熟悉Linux常用命令
2.添加打包spring-boot-maven-plugin
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<build>
<resources>
<resource>
<!-- xml放在java目录下-->
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<!--指定资源的位置(xml放在resources下,可以不用指定)-->
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
3.将项目打包为jar包
4.上传linux
5.启动文件(包含启动,停止,重启)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#获取当前的文件夹
CURR_DIR=$(cd $(dirname $0) && pwd)
#JAVA_HOME 的配置路径
JAVA_HOME="/usr/java/jdk1.8.0_162"
#执行程序启动所使用的用户
RUNNING_USER="root"
#java虚拟机启动参数
JAVA_OPTS="-server -Xms32m -Xmx512m -XX:PermSize=32m -XX:MaxPermSize=128m"
#需要启动的jar
JAR_FILE=$(cd $CURR_DIR && ls *jar)
APP_JAR=$CURR_DIR/$JAR_FILE
###################################
#(函数)判断程序是否已启动
#
#说明:
#使用JDK自带的JPS命令及grep命令组合,准确查找pid
#jps 加 l 参数,表示显示java的完整包路径
#使用awk,分割出pid ($1部分),及Java程序名称($2部分)
###################################
#初始化psid变量(全局)
psid=0
checkpid() {
javaps=`ps -ef | grep oa | grep -v grep | awk '{print $2}'`
if [ -n "$javaps" ]; then
psid=$(echo $javaps | awk '{print $1}')
else
psid=0
fi
}
###################################
#(函数)启动程序
#
#说明:
#1. 首先调用checkpid函数,刷新$psid全局变量
#2. 如果程序已经启动($psid不等于0),则提示程序已启动
#3. 如果程序没有被启动,则执行启动命令行
#4. 启动命令执行后,再次调用checkpid函数
#5. 如果步骤4的结果能够确认程序的pid,则打印[OK],否则打印[Failed]
#注意:echo -n 表示打印字符后,不换行
#注意: "nohup 某命令 >/dev/null 2>&1 &" 的用法
###################################
start() {
checkpid
cd $CURR_DIR
if [ $psid -ne 0 ]; then
echo "================================"
echo "warn: $APP_JAR already started! (pid=$psid)"
echo "================================"
else
echo "Starting $APP_JAR ..."
nohup $JAVA_HOME/bin/java $JAVA_OPTS -jar $APP_JAR >/dev/null 2>&1 --spring.profiles.active=dev &
# echo $JAVA_CMD
# $JAVA_CMD
checkpid
if [ $psid -ne 0 ]; then
echo "(pid=$psid) [OK]"
else
echo "[Failed]"
fi
fi
}
###################################
#(函数)停止程序
#
#说明:
#1. 首先调用checkpid函数,刷新$psid全局变量
#2. 如果程序已经启动($psid不等于0),则开始执行停止,否则,提示程序未运行
#3. 使用kill -9 pid命令进行强制杀死进程
#4. 执行kill命令行紧接其后,马上查看上一句命令的返回值: $?
#5. 如果步骤4的结果$?等于0,则打印[OK],否则打印[Failed]
#6. 为了防止java程序被启动多次,这里增加反复检查进程,反复杀死的处理(递归调用stop)。
#注意:echo -n 表示打印字符后,不换行
#注意: 在shell编程中,"$?" 表示上一句命令或者一个函数的返回值
###################################
stop() {
checkpid
if [ $psid -ne 0 ]; then
echo -n "Stopping $APP_JAR ...(pid=$psid) "
su - $RUNNING_USER -c "kill -9 $psid"
if [ $? -eq 0 ]; then
echo "[OK]"
else
echo "[Failed]"
fi
checkpid
if [ $psid -ne 0 ]; then
stop
fi
else
echo "================================"
echo "warn: $APP_JAR is not running"
echo "================================"
fi
}
###################################
#(函数)检查程序运行状态
#
#说明:
#1. 首先调用checkpid函数,刷新$psid全局变量
#2. 如果程序已经启动($psid不等于0),则提示正在运行并表示出pid
#3. 否则,提示程序未运行
###################################
status() {
checkpid
if [ $psid -ne 0 ]; then
echo "$APP_JAR is running! (pid=$psid)"
else
echo "$APP_JAR is not running"
fi
}
###################################
#(函数)打印系统环境参数
###################################
info() {
echo "System Information:"
echo "****************************"
echo $(head -n 1 /etc/issue)
echo $(uname -a)
echo
echo "JAVA_HOME=$JAVA_HOME"
echo $($JAVA_HOME/bin/java -version)
echo
echo "APP_JAR=$APP_JAR"
echo "****************************"
}
###################################
#读取脚本的第一个参数($1),进行判断
#参数取值范围:{start|stop|restart|status|info}
#如参数不在指定范围之内,则打印帮助信息
###################################
case "$1" in
'start')
start
;;
'stop')
stop
;;
'restart')
stop
start
;;
'status')
status
;;
'info')
info
;;
*)
echo "Usage: $0 {start|stop|restart|status|info}"
exit 1
esac
exit 0
6.直接用Java -jar静默启动
java -Xmx1024M -Xms1024M -jar fabric-server-launch.jar nogui &
7.如果前后端分离需要配置nginx
server {
listen 80; #端口 监听80端口当域名为wechat.****.com 访问location 下的静态文件
#,如果路径带有/api 转发到当前服务器下的7013如果是非本主机下的项目改
#127.0.0.1为项目所在服务器的IP地址
server_name wechat.****.com; #IP
location / {
root /home/wuye/****/dist; #打包dist传至服务器里的路径
try_files $uri $uri/ /index.html last;
index index.html;
}
location /api {
rewrite ^/api/(.*)$ /$1 break; #利用正则进行匹配
proxy_pass http://127.0.0.1:7013; #反向代理需要设置,不然会有跨域问题
}
}
server {
listen 80; #端口 监听80端口 wechatapi.****.com 域名转发到本机的7013端口
server_name wechatapi.****.com; #IP
location / {
proxy_pass http://127.0.0.1:7013/;
}
}
8.vue项目的静默启动输出日志到log
nohup npm run start > log.log & exit 重启
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步