在个人windows系统下,部署项目分以下几步:
(1)连接阿里云服务器
(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),我们将立即处理。