springboot项目打包部署到linux,使用宝塔完成并运行

项目打包运行

前置条件

  1. 默认你已经拥有自己的服务器,或者虚拟机,并且环境已经搭建好了
  2. 项目的端口号已经开启,其他必要服务的端口号也开启了,没有开启下面会讲
  3. mysql,java,tomcat,等必要软件已经在服务器上安装
  4. 此次采用的方式多为宝塔,linux也是同理的,原理相同,宝塔操作更为直观

linux配置

数据库权限赋予

image-20231107002259763

这里用一个新用户进行演示,赋予其所有权限

CREATE USER 'yourLoginName'@'%' IDENTIFIED BY 'yourpassword'; # 创建一个用户,名字随意,密码随意
GRANT ALL PRIVILEGES ON *.* TO 'yourLoginName'@'%'; # 赋予这个用户所有的权限
FLUSH PRIVILEGES; # 刷新权限,连接成功

之后按照前面的步骤查询一下user表的host和userer字段即可,host为%代表修改成功

开启端口号

阿里云和宝塔都需要开启

image-20231107002650174

image-20231107002717785

宝塔配置

软件安装

image-20231107001437470

数据库

如果是第一次在宝塔面板上添加数据库的话,点击添加数据库,配置相关信息

image-20231107002946610

如果是linux系统上已经有了数据库,那就点击同步所有 | 从服务器获取

  1. 先同步服务器上的数据库,其中标红的就是项目所使用的数据库
    • image-20231107001507222
  2. 打开navicat,远程连接服务器数据库
    • image-20231107001614770
    • image-20231107001653196
    • image-20231107001725205
  3. 将本地mimall数据库当中的表复制到新数据库当中
    • image-20231107001737502
    • image-20231107001821452
    • image-20231107001836467
    • image-20231107001845903
  4. copy成功
    • image-20231107001907504

springboot项目打包

首先,很重要的一点,检查你的pom.xml文件,检查这几个配置项

image-20231107003641882

 <plugins>
     <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>3.8.1</version>
         <configuration>
             <source>1.8</source>
             <target>1.8</target>
             <encoding>UTF-8</encoding>
         </configuration>
     </plugin>
     <!-- 我这里是通过阿里云官网下载的boot项目,这里的配置项可能不一样,但是要做修改 -->
     <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
         <version>${spring-boot.version}</version>
         <executions>
             <execution>
                 <goals>
                     <goal>repackage</goal>
                 </goals>
             </execution>
         </executions>
     </plugin>
</plugins>

yml配置文件信息核对

image-20231107003250553

在config类下添加跨域配置类

image-20231107003346134

代码

/**
 * 配置跨域代理
 * @author waves
 */
@Configuration
public class CorsConfig {
    // 当前跨域请求最大有效时长,默认设置1天
    private static final long MAX_AGE = 24 * 60 * 60;

    @Bean
    public CorsFilter corsFilter(){
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        // 配置访问原源地址,你自己的服务器ip地址
        corsConfiguration.addAllowedOrigin("http://xx.xxx.xx.xxx");
        // 设置访问源请求头
        corsConfiguration.addAllowedHeader("*");
        // 设置请求方法
        corsConfiguration.addAllowedMethod("*");
        corsConfiguration.setMaxAge(MAX_AGE);
        // 对接口配置跨域设置
        source.registerCorsConfiguration("/**",corsConfiguration);
        return new CorsFilter(source);
    }
}

打包

先clean再package,clean是清除当前项目当中已打包的jar包文件,package是进行打包

image-20231107003545257

打包成功以后,在项目的target目录下有一个jar包文件

image-20231107003933447

部署到宝塔

image-20231107004110140

因为不止一个项目,所以我在http下又创建了一个文件存放当前的boot项目

image-20231107004155406

点击上传,把jar包拖过去

image-20231107004221906

点击网站,添加站点

image-20231107004354325

image-20231107004422290

点击设置

image-20231107004438676

image-20231107161404954

在宝塔上面远程连接服务器

image-20231107004631124

这里的ip地址不要写你服务器的,就用他的127.0.0.1,此刻服务器才是本机,用户名是root,密码就是你阿里云密钥/ssh哪里设置的密码

image-20231107004820210

登录成功以后,进入终端,运行jar包

java -jar yourJarPackageName.jar

image-20231107004915913

这样项目就成功运行了,你可以在自己的本机上面去访问服务器端口的boot项目

image-20231107005027854

但是这里只是配置了boot项目,当这个远程连接终端关闭的时候,boot项目也会停止

加入代码,我就不加了,我只是测试下项目,有vue项目也可以按照之前的流程部署在服务器上,跟java的jar包放在同一级目录

image-20231107005432299

# 让其一直运行
nohub java -jar youbootJarName.jar $ 
# 关闭当前远程连接
exit

刷新目录,出现这个文件 ,项目会一直运行

image-20231107005453351

posted @ 2023-11-07 01:05  澜璨  阅读(96)  评论(0编辑  收藏  举报