# JeecgBoot开源版本全流程部署

TIP

本文档详尽记录了JeecgBoot的全版本安装教程,涵盖源码安装、数据库设置等步骤,适合对java不熟悉的新手。内容包括部署注意事项、前端定制、后端配置、数据库连接以及登录功能调整。同时分享了作者在开发过程中的经验教训和逻辑bug解决方案,提供了一站式的JeecgBoot学习路径。

# 源码下载

github地址
https://github.com/jeecgboot/JeecgBoot

在release仓库找到最新的版本3.7
https://github.com/jeecgboot/JeecgBoot/archive/refs/tags/v3.7.0last_springboot3.zip

# 后端部署

将下载后的项目中Boot模块导入IDEA工具,这里我们是单体部署,可以删除cloud微服务相关的模块。如下图

foo

将db下的sql脚本文件在数据执行,并且注意mysql版本5.7+,低于此版本会出现执行异常

foo

修改application-dev.yml和application-prod.yml中属性,主要涉及到oss,mysql,redis三款必用的中间件配置。

datasource:
  master:
    driver-class-name: oracle.jdbc.OracleDriver
    url: jdbc:oracle:thin:@10.XXX.XXX.XXX:1521:XXXXX
    username: 用户名
    password: 密码
//将数据库修改成自己的配置

#redis 配置
redis:
  database: 0
  host: 127.0.0.1
  lettuce:
    pool:
      max-active: 8   #最大连接数据库连接数,设 0 为没有限制
      max-idle: 8     #最大等待连接中的数量,设 0 为没有限制
      max-wait: -1ms  #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
      min-idle: 0     #最小等待连接中的数量,设 0 为没有限制
    shutdown-timeout: 1000ms
  password: '密码密码密码密码密码密码密码密码密码密码密码密码'
  port: 6380
//将redis改成自己的,这个中间件涉及到登陆,必须改。

# 本地:local、Minio:minio、阿里云:alioss
uploadType: alioss
oss:
    endpoint: oss-cn-beijing.aliyuncs.com
    accessKey: xx
    secretKey: xx
    bucketName: xxx
    staticDomain: https://xxx
//将 uploadType改成alioss,并且配置oss属性下的参数,这样应用可以正常上传图片啦

在确保项目本地能运行的情况下,下面将描述项目如何进行打包,注意标红字体的描述

foo
foo

打包之后便可以通过alibaba cloudkit工具进行jar上传,并且自动执行脚本启动。(关于alibaba cloudkit工具如何使用可以百度,强烈推荐)

foo

boot项目的执行脚本样例

#!/bin/sh
cd /home/jeecgflow/camunda
#杀掉进程
pid=`ps -ef | grep jeecg-system-start-3.6.1.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi

nohup java \
-Xms1024m \
-Xmx1024m \
-XX:NewRatio=1 \
-XX:MetaspaceSize=512m \
-XX:+UseConcMarkSweepGC \
-XX:+CMSParallelRemarkEnabled \
-XX:+UseParNewGC \
-XX:+PrintGCDetails \
-XX:+PrintGCDateStamps \
-XX:+PrintGC \
-Xloggc:/export/Logs/gc.log \
-XX:+PrintHeapAtGC \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/export/Logs/oom_error.hprof \
-jar jeecg-system-start-3.6.1.jar&

最后,如果您在使用JeecgBoot过程中对于集成工作流有需要,请访问JeecgFlow (opens new window)

# 前端部署

通过vscode将前端项目进行导入,并且修改配置文件链接到boot项目的地址

foo

执行pnpm install安装依赖,接着执行npm run build 进行编译打包, 本地运行则npm run dev。将生成dist文件夹, 通过alibaba cloudkit工具上传到服务器

foo

一般通过 nginx进行代理转发,接下来展示出nignx如何配置

server {
    server_name xxx.xxx.com
    listen 80;
    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 9;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

    location / {
         root   /home/jeecgflow/flowable/dist;
         index  index.html index.htm;
         try_files $uri $uri/ /index.html;
    }
    # jeecgboot3.6.1+采用以下配置,3.6.1-用jeecg-boot
    location ^~ /jeecgboot {
	    proxy_pass              http://127.0.0.1:8084/jeecg-boot/;
        proxy_set_header        Host 127.0.0.1;
	    proxy_set_header        X-Real-IP $remote_addr;
	    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }

  

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

最后,如果您在使用JeecgBoot过程中对于集成工作流有需要,请访问JeecgFlow (opens new window)