Skip to content

如何部署后端jar包? #2

Open
@FrankKai

Description

@FrankKai

虽然是前端,但是自己启动了以vue,typescript,iview,spring-boot,mysql为技术栈启动的arya-spring-vue全栈项目。
前端文件部署已经初步掌握:如何部署前端dist目录?
但是服务端是有点懵的:一来自己不是后端,平时没有这方面的经验;二来无论是node全栈项目,还是vue+spring全栈项目,都仅仅在自己本地运行成功过。
也刚刚成功将arya-spring-vue-be成功部署到了一台CentOS腾讯云服务器上,趁热记录一下。

  • 前置知识
  • Spring Boot Maven Plugin打包出内嵌tomcat的jar包
  • CentOS安装jdk并设置环境变量
  • CentOS7安装MySQL
  • 新建数据库和用户并运行jar包

Activity

FrankKai

FrankKai commented on Nov 29, 2019

@FrankKai
ContributorAuthor

前置知识

maven,tomcat,jar。
虽然有nodejs服务端经验,但我是java技术栈萌新,所以有以下疑问:

  • 在服务器上java服务端的服务是怎样跑起来的?
  • 会像前端构建一个类似dist的包吗?

在思考这两个问题之前,先来补充一些前置知识。

maven:[译]Maven in 5 Minutes[译]Maven Getting Started Guide
tomcat:Apache Tomcat初体验
jar:[译]Create a Fat Jar App with Spring Boot[译]Running a Spring Boot App with Maven vs an Executable War/Jar

在服务器上java服务端的服务是怎样跑起来的?tomcat环境下运行的jar包;内嵌tomcat的jar包。
会像前端构建一个类似dist的包吗?需要,通常是jar包,也可以是war包。mvn packagemvn package spring-boot:repackage打包。

FrankKai

FrankKai commented on Nov 29, 2019

@FrankKai
ContributorAuthor

Spring Boot Maven Plugin打包出内嵌tomcat的jar包

已有条件:
spring-boot项目arya-spring-vue-be
maven已安装
jdk已安装

pom.xml

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

打包

mvn clean package spring-boot:repackage

打包出内嵌tomcat的jar包:arya-spring-vue-be-0.0.1-SNAPSHOT.jar

FrankKai

FrankKai commented on Nov 29, 2019

@FrankKai
ContributorAuthor

CentOS安装jdk并设置环境变量

安装JDK

mkdir /usr/java  # 创建 java 文件夹
cd /usr/java     # 进入 java 文件夹

本地下载好jdk-11.0.5_linux-x64_bin.tar.gz。
使用FileZila将JDK 安装包上传到上述 java 文件夹下,然后解压安装包。

// 解压安装包
chmod +x jdk-11.0.5_linux-x64_bin.tar.gz
tar -xzvf jdk-11.0.5_linux-x64_bin.tar.gz
// 设置环境变量
打开 /etc/profile 文件。
vim /etc/profile

输入以下配置并保存:

export JAVA_HOME=/usr/java/jdk-11.0.5
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
// 配置文件立即生效
source /etc/profile
FrankKai

FrankKai commented on Nov 29, 2019

@FrankKai
ContributorAuthor

CentOS7安装MySQL

[译]How To Install MySQL On CentOS 7

sudo yum install mysql-server这一步是存在一些坑的,其次就是下载mysql需要一些等待时间。

FrankKai

FrankKai commented on Nov 29, 2019

@FrankKai
ContributorAuthor

新建数据库和用户并运行jar包

查看https://github.com/arya-spring-vue/arya-spring-vue-be/blob/master/src/main/resources/application.properties

看到如下数据库配置

spring.datasource.url=jdbc:mysql://localhost:3306/arya_spring_vue_be
spring.datasource.username=arya_spring_vue_user
spring.datasource.password=password

因此如此创建数据库和用户

mysql> create database arya_spring_vue_be;
mysql> create user 'arya_spring_vue_user'@'%' identified by 'password';
mysql> grant all on arya_spring_vue_be.* to 'arya_spring_vue_user'@'%';

运行jar包:jar -jar arya-spring-vue-be-0.0.1-SNAPSHOT.jar


  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.3.RELEASE)

2019-11-29 18:05:43.092  INFO 10520 --- [           main] c.a.s.v.a.AryaSpringVueBeApplication     : Starting AryaSpringVueBeApplication v0.0.1-SNAPSHOT on VM_0_11_centos with PID 10520 (/usr/java/arya-spring-vue-be-0.0.1-SNAPSHOT.jar started by root in /usr/java)
...
2019-11-29 18:06:00.154  INFO 10520 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2019-11-29 18:06:00.184  INFO 10520 --- [           main] c.a.s.v.a.AryaSpringVueBeApplication     : Started AryaSpringVueBeApplication in 19.419 seconds (JVM running for 21.197)
  • 好看的Spring提示
  • Tomcat成功运行在8080端口
  • AryaSpringVueBeApplication成功启动

至此,后端jar包部署成功!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @FrankKai

        Issue actions

          如何部署后端jar包? · Issue #2 · arya-spring-vue/arya-spring-vue-dp