之前写了一篇部署的文章,但是打包时会运行所有的单元测试,如果不想测试的话,可以采用这种方式。
第一部分:打包
1.pom.xm添加配置
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
2.在Terminal中执行命令:
mvn clean package -Dmaven.test.skip=true
解释:mvn clean 清除目标目录中的生成结果(target) -Dmaven.test.skip=true:跳过测试类
第二部分:部署
1.使用软件:WinSCP
下载地址:https://winscp.net/eng/download.php
2.操作
a.命令:jps -ll 查看所有进程(查看你的项目是否在运行) -l:输出完全的包名,应用主类名,jar的完全路径名
b.命令 :kill - 9 进程 如果程序想杀死正在运行的程序,可以使用该命令。
特别说明:
kill和kill -9,两个命令在linux中都有杀死进程的效果,然而两命令的执行过程却大有不同。
执行kill命令,系统会发送一个SIGTERM信号给对应的程序。当程序接收到该signal信号后,将会发生以下事情:
程序立刻停止,当程序释放相应资源后再停止,程序可能仍然继续运行
大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后再停止。但是也有程序可能接收信号后,做一些其他的事情,SIGTERM多半是会被阻塞的。
然而kill -9命令,系统给对应程序发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程。
c.命令:mkdir /usr/local/springboot 创建目录,存放jar包
d.命令:mv ~/springboot.jar ./ 如果jar包不在该目录下,可以通过mv命令移至该目录。
e.命令:chmod -R 777 ./xxx.jar 设置权限(建议不要随意设置) chmod能改变权限,-R是目录下所有文件,777就是高权限(读、写、执行)
f.启动jar包的几种方式,在此介绍优缺点。
方式一:命令:java -jar xxx.jar
解释:运行成功之后使用crtl+c可以退出项目运行,或者直接关闭连接窗口,项目也会停止运行; 缺点:当退出或关闭shell时,程序就会停止掉
方式二:命令:nohup java -jar springboot-hmservice-0.0.1-SNAPSHOT.jar &
解释:nohup 是linux一个命令,nohup是保证后台启动,就是关闭窗口程序任然在运行默认将日志打印到nohup,&产生作业编号就是那个 [1] 19649,nohup要和&一起用才能保证关闭窗口程序任然在运行
缺点:在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件
方式三:命令:nohup java -jar springboot-hmservice-0.0.1-SNAPSHOT.jar >>/dev/null 2>&1 &(推荐)
解释:/dev/null 代表空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
> 代表重定向到哪里
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
nohup ./mqnamesrv >/home/cxb/mqnamesrv.out 2>&1 &
即标准输出到mqnamesrv.out中,接着,标准错误输出重定向等同于标准输出,输出到同一文件中。
g.命令:less -n log\\myspringboot.log tail -f log\\myspringboot.log 查看日志