部署以前先说下两种包,java项目部署到服务器通常有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署以前先搞清楚本身要打war包仍是jar包,下面小介绍两种包的区别: spring boot既能够打成war发布,也能够找成jar包发布。说一下区别:java
jar包:直接经过内置tomcat运行,不须要额外安装tomcat。如需修改内置tomcat的配置,只须要在spring boot的配置文件中配置。内置tomcat没有本身的日志输出,全靠jar包应用输出日志。可是比较方便,快速,比较简单。mysql
war包:传统的应用交付方式,须要安装tomcat,而后放到waeapps目录下运行war包,能够灵活选择tomcat版本,能够直接修改tomcat的配置,有本身的tomcat日志输出,能够灵活配置安全策略。相对打成jar包来讲没那么快速方便。web
我的比较偏向打成jar包的方式发布应用,由于spring boot已经内置了tomcat,无需额外配置。其实能够搜索下spring boot的特色,有个很是重要的特性就是spring boot把市面优秀的开源技术,都集合起来,方便快速应用。技术没有百分百这种好,也没有百分百那种很差,存在即合理,最主要仍是看我的习惯和业务场景需求了。redis
先说下jar包怎么部署启动项目,这里的jar包前提是springboot项目打的,pom文件已经设置过了入口文件等相应设置,具体设置这里就不说了。spring
1.安装 xshell 、xftp软件 Xshell功能简介 Xshell [1] 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 经过互联网到远程主机的安全链接以及它创新性的设计和特点帮助用户在复杂的网络环境中享受他们的工做。 Xshell能够在Windows界面下用来访问远端不一样系统下的服务器,从而比较好的达到远程控制终端的目的。除此以外,其还有丰富的外观配色方案以及样式选择。 Xftp 功能简介 是一个基于 MS windows 平台的功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 之后,MS windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。Xftp 能同时适应初级用户和高级用户的须要。它采用了标准的 Windows 风格的向导,它简单的界面能与其余 Windows 应用程序紧密地协同工做,此外它还为高级用户提供了众多强劲的功能特性。 2.经过安装以上两个软件能够实现window电脑远程控制Linux服务器,这样就能够将咱们打包好的jar文件传输到Linux服务器上进行项目的部署。sql
假设Linux服务上已经有了打好的jar包,下面介绍几种经常使用的部署方式:docker
一、java -jar启动方式。shell
java -jar *.jar
复制代码
此中方式只会运行在当前窗口,当关闭窗口或断开链接,jar程序就会结束。windows
二、nohup启动方式。(推荐)浏览器
# nohub: 不挂断的运行命令
# &:后台运行
# >: 日志重定向输出到
nohub java -jar *.jar >jarLog.txt &
复制代码
三、注册为Linux服务(推荐)
<!--这样配置后,经过maven打出来的jar 能够直接 执行 ./aabb.jar 就能运行起来。 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
复制代码
将打好的jar包放到Linux任意目录 eg: /var/project/
sudo ln -s /var/project/demo.jar /etc/init.d/abc
(其中demo为jar包名称,abc为服务名称)
复制代码
以后就能够用 service XXX start 命令来启动jar包
启动/关闭 服务 service abc start/stop 查看状态 service abc status 设置开机自启 chkconfig abc on
四、systemctl启动方式。
[Unit]
Description=abc.service
Requires=mysql.service mongod.service redis.service
Wants=abc.service
After=syslog.target network.target mysql.service mongod.service redis.service abc.service
[Service]
User=manager
Group=manager
EnvironmentFile=/home/.bash_profile
WorkingDirectory=/home/tomcat
ExecStart=/usr/bin/java -Xms512m -Xmx512m -jar /home/你的项目名.jar --spring.profiles.active=test
[Install]
WantedBy=multi-user.target
复制代码
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
LOG_PATH=/home/logs
export LOG_PATH
export PATH
复制代码
其中上述中的LOG_PATH能够在项目中引用,例如:
直接将*.jar文件拷贝到tomcat\webapps\目录下,启动tomcat,访问localhost:8080/jar包名便可。 注意:启动tomcat的时候优先用服务方式启动tomcat以下: nohup ./startup.sh &
(&能够用于后台运行)
注意:用tomcat启动jar须要注意的是打包的时候须要把包里面tomcat排除掉:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
复制代码
六、基于docker云部署。 www.jianshu.com/p/ec477d84f…
最后补充一些常规命令:
在Linux项目上对项目进行操做的命令符以下: 后台暂时运行:java -jar /root/yyxx/cloud-yyxx-web-1.0-exec.jar(后台暂时运行) 后台永久运行,想要中止需杀死后台进程:nohup java -jar /root/yyxx/cloud-yyxx-web-1.0-exec.jar &() 查看jar进程:ps aux|grep cloud-yyxx-web-1.0-exec.jar 杀掉进程: kill -9 进程号
最简单,常见的部署方法,直接将war包放到tomcat的wabapp目录下,运行tomcat就行。 具体步骤以下: a. 把项目打包到wabapp目录下。以下图