最近我做的一个小项目要上线部署,团队很小,上线部署的重任自然就落到,我这个唯一一个后端开发身上(天知道,我还是个孩子啊!),经过这次上线,让我意识到,代码不是只在本地跑起来就可以了,与以往学习过程中的项目上线是不大相同的。正式生产项目上线,对于我这个新手来说无疑是惊心动魄的。
打包的类型jar还是war
言归正传,说回项目上线,如果服务器上只部署一个项目要简单很多,前后端一体项目也简单,如果没有其他要求的话,直接在本地确保项目没问题后直接打包,jar包或是war包都可,看你自己的需求,jar包的话,如果是springboot项目是使用内嵌的tomcat,一般来说,先看看你项目是打的什么包,确保是你想要的,看看pom.xml里有没有指定
创建项目是选的是jar包还是war包,jar包的话好说,如果你要打war包,则项目不能直接启动 ,这是springboot项目不再使用内嵌的tomcat了,切记要把打包类型改成war,排除springboot的内置tomcat
- 1.排除依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
-
- 将scope设置为provided,因为provided表明该包只在编译和测试的时候用,所以,当启动tomcat的时候,就不会冲突了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
你需要把war包放到你自己下的tamcat的webapps下,启动tomcat才能启动你的项目
打包命令
在idea里可以在用maven命令打包,切记打包之前先clean,养成好习惯,
在package 或者install,你还可以在项目根目录,或者在idea底部直接打开命令行
直接mvn clean install 一步单位,这样使用的前提是你已经配置过,maven和idea的环境变量,这一步我就不在此细说了,不懂得可以去搜索一下,有时间我在补充。
打包完成后可以在target目录下看到多出的jar包或war包
把jar包丢到服务器上,在项目根目录上进入命令行,java -jar (项目名).jar 即可,但如果世界上事情都这么简单就好了。
很多时候,在执行启动命令的时候会 报错,冷静,报错是最好的事情,有些东西远比报错要恐怖。报错之后把报错信息复制搜索引擎上找一下,一般都能解决, 我的项目就比较特殊,需要把项目lib包与jar包放在同一目录下,
java -Dloader.path=./lib -jar [你的项目名].jar 才可以启动。
前端项目部署
由于我的项目是强后端分离的,所以还需部署前端项目,没弄过,没办法,硬着头皮上。前后端分离部署方式,我了解的主要有这么几种
-
前后端项目都放在tomca的webapps目录下,此时后端县项目要打成war包,排除内嵌tomcat,启动tomcat,看到有项目名出来,说明启动成功了。
如果你的tomcat只有一个项目的话可以把前端项目直接放在root文件夹下,这样做直接输入127.0.0.1/8080就能访问,你在服务器部署127.0.0.1就换成你服务器IP即可 -
或者你的后台代码不放在tomcat里,打成jar包,用命令单独启动就好
但如果你要在tomcat上放多个项目,可以把前端代码放在webapps下,新建一个文件夹,以你项目名命名,例如叫tes,则你访问127.0.0.1/test
这样做前端端口号要是8080的,不然路径就要加上端口号127.0.0.1:8081/test这样即可 -
或者你使用nginx 部署项目也是可以的
有时间我在整理把,网上的相关资料挺多的,先偷个懒。
如过你有相关方面的疑问,欢迎给我发邮件lin1462794003@gmail.com