阿里云服务器部署SpringBoot项目

在个人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;再启动

借鉴文章:https://www.cnblogs.com/liuxiaoming123/p/8044434.html

我的另一篇文章:【SpringBoot项目Mybatis连接MySQL以及前端访问文件配置】https://blog.csdn.net/qq_26012495/article/details/81260120

猜你喜欢

转载自blog.csdn.net/qq_26012495/article/details/82919588
今日推荐