目录
  • 方式一、以jar文件运行
    • 添加maven依赖
    • 将项目打包
  • 将jar文件放到服务器
    • 在服务器运行jar文件
      • 浏览器访问
    • 2、以war方式部署
      • 修改打包方式
      • 移除嵌入式tomcat插件
    • 打包
      • 部署
        • 浏览器访问
          • 总结

            springboot版本:2.0.3.RELEASE

            云服务器:阿里云ECS CentOS 7.3 64位

            IDE:IntelliJ IDEA

            服务器远程连接工具:Xshell 5

            方式一、以jar文件运行

            添加maven依赖

            Spring Boot 默认以jar包方式运行,

            部署springboot项目到云服务器的两种方式(jar+war)

            可以在Maven配置如下插件,将Spring Boot 导出成可执行的jar文件。

            <build>
            	<plugins>   
            		<plugin>
            			<groupId>org.springframework.boot</groupId>
            			<artifactId>spring-boot-maven-plugin</artifactId>
            		</plugin>
            	</plugins>
            </build>

            将项目打包

            在工程目录下的运行命令行中运行mvn package:

            >mvn package

            *推荐使用IDE中图形化界面的操作

            部署springboot项目到云服务器的两种方式(jar+war)

            (图中操作是跳过测试打包)

            package会将Maven工程打包成一个可执行的jar文件存放在target目录下,在控制台中看到有如下输出则表示输出成功:

            部署springboot项目到云服务器的两种方式(jar+war)

            将jar文件放到服务器

            打包好的jar文件已存放在target目录下

            部署springboot项目到云服务器的两种方式(jar+war)

            将jar文件放到服务器合适的目录下

            部署springboot项目到云服务器的两种方式(jar+war)

            (本文使用直接鼠标拖拉的方式,也可根据需要使用rz命令、FileZilla工具等方式)

            在服务器运行jar文件

            切换到jar文件所在目录,执行命令(前提是已在服务器装好jdk)

            java -jar yourProjectName.jar

            部署springboot项目到云服务器的两种方式(jar+war)

            浏览器访问

            在浏览器输入地址访问

            部署springboot项目到云服务器的两种方式(jar+war)

            注意和在本地电脑运行相比,只需将ip地址换成服务器的即可,端口号和路径名都是跟在本地电脑运行时一样的,即与yml配置文件一致

            部署springboot项目到云服务器的两种方式(jar+war)

            至此,项目部署完成

            2、以war方式部署

            Spring Boot 默认自带了一个嵌入式的Tomcat服务器,可以以jar方式运行,更为常见的情况是需要将Spring Boot 应用打成一个war包,部署到Tomcat等服务器上。

            修改打包方式

            这种情况下,需要将pom中的packaging改成war方式:

            部署springboot项目到云服务器的两种方式(jar+war)

            移除嵌入式tomcat插件

            这里提供2种方式(本文项目使用方式2)

            方式1、需要将嵌入的Tomcat依赖方式改成provided(编译、测试时将依赖的包加入本工程的classpath,运行时不加入,可以理解成运行时不使用Spring Boot 自带的Tomcat)

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>

            方式2、在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码,

            <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>

            添加servlet-api的依赖

            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
                <scope>provided</scope>
            </dependency>

            修改启动类,并重写初始化方法

            部署springboot项目到云服务器的两种方式(jar+war)

            打包

            操作步骤与jar方式的打包一致,打包完成后会在target目录下生成.war文件

            部署

            将war文件放到Tomcat的webapps目录下,启动Tomcat(在bin目录下执行./startup.sh),即可自动解压部署

            浏览器访问

            访问地址为:

            http://服务器ip:服务器里Tomcat配置的端口/项目名/接口路径

            *注意:项目名以Tomcat的webapps目录下解压后的文件夹名字为准

            部署springboot项目到云服务器的两种方式(jar+war)

            由于不使用Spring Boot 自带的Tomcat所以yml文件下的server配置不起作用

            部署springboot项目到云服务器的两种方式(jar+war)

            到此,项目部署完成

            总结

            1、jar包部署方式使用Spring Boot 自带的Tomcat,因为Spring Boot 应用自带Tomcat,所以可直接在服务器运行jar文件

            2、war包部署方式则使用云服务器里的Tomcat,此时需要移除Spring Boot 自带的Tomcat插件

            3、注意2种部署方式的访问路径差异

            4、注意所用端口号是否已在安全组开放

            声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。