阿里云服务器部署SpringBoot项目

发表于:2018-11-19 10:27

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:少年做自己的英雄    来源:CSDN

  在个人windows系统下,部署项目分以下几步:
  (1)连接阿里云服务器
  (2)将本地java程序的prod配置文件参数配置为服务器的路径、数据库
  (3)项目打包
  (4)项目部署运行
  (5)部署后访问遇到的问题及解决办法
  1、SpringBoot中使用jsp部署后无效
  2、部署后,linux中外部磁盘中静态文件无法获取。
  3、该进程已存在【若启动项目 出现  java.net.BindException: 地址已在使用 报错】
  (1)连接阿里云服务器
  使用SecureCRT或者Xshell等终端仿真程序远程连接阿里云服务器,连接后就是一台linux系统的电脑,配置项目所需环境。
  (2)将本地java程序的prod配置文件参数配置为服务器的路径、数据库等
  将application.properties文件指向prod,或者打包时直接配置环境为prod的包,然后将application-prod.properities中的tomcat端口;数据库url、端口、用户名、密码;外部文件路径 等都配置为服务器对应项。
  (3)项目打包
  SpringBoot项目可以打jar包独立运行,也可以打war包丢到tomcat下运行。这里推荐打jar包,在本地终端中cd到项目所在目录,然后使用命令:mvn clean package -Dmaven.test.skip=true。使用jar包去服务器上自己跑,需要避开其他已经使用的所有端口,包括tomcat,而这个端口需要在阿里云官网界面上开放,否则会被防火墙拦截。
  如果不想每次打包时都要更换配置项,可以打包时添加参数直接打包prod环境。
  maven多环境打包:
  在pom.xml的<project>标签下设置如下配置项
<!--分别设置开发,测试,生产环境-->
  <profiles>
  <profile>
  <id>dev</id>
  <properties>
  <deploy.type>dev</deploy.type>
  </properties>
  </profile>
  <profile>
  <id>test</id>
  <activation>
  <activeByDefault>true</activeByDefault>
  </activation>
  <properties>
  <deploy.type>test</deploy.type>
  </properties>
  </profile>
  <profile>
  <id>prod</id>
  <properties>
  <deploy.type>prod</deploy.type>
  </properties>
  </profile>
  </profiles>
  配置好后,就支持多环境打包了,在原有打包命令结尾,添加-P+环境,例如:mvn clean package -Dmaven.test.skip=true -Ptest,在结尾加了-Ptest,就是直接打包测试环境。
  (4)项目部署运行
  常规运行jar项目的方法是java -jar xxx.jar
  看到上图亲切的界面你以为就是起来了?但是当你退出当前命令或者关闭终端,连接就会断掉。所以必须使用常驻命令:nohup java -jar xxx.jar &,最后一个&表示执行命令后要生成日志文件nohup.out。
  (5)部署后访问遇到的问题及解决办法
  1、SpringBoot中使用jsp部署后无效
  不知为何,打包版本只有1.4.2.RELEASE支持jsp访问。在pom.xml中做如下配置方可:
  <plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <version>1.4.2.RELEASE</version>
  </plugin>
  2、部署后,linux中外部磁盘中静态文件无法获取。
  只需要在application.properties中配置:spring.resources.static-locations=file:F:\\test,file:/data/test
  不论是windows环境还是linux环境,前面都要加上file:,上述配置以逗号分隔,第一个是windows环境,第二个是linux环境。
  3、该进程已存在【若启动项目 出现 ? java.net.BindException: 地址已在使用 ? 报错】
  ps -ef|grep java,拿到进程ID,然后kill - 9 PID;再启动
  
     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号