1.mall4j-bbc项目的搭建.md 7.4 KB

mall4j-bbc:j代表java,java项目,这里面包含了小程序/uniapp/pc/后台vue连接需要的接口。

1.开发环境(要在开发环境打包完成才能放到生产环境,所以开发环境要搭建起来)

以下版本是最低要求的!!! 提问问题前请注意生产环境!!请安装好对应的依赖。

工具 版本
jdk 1.8
mysql 5.7+
redis 3.2+
ElasticSearch 7.9+
xxl-job 2.3.0

2.导入数据库到正式环境

2.1.1 导入数据库之前,先要修改数据库配置

修改配置文件my.cnf

[mysqld]
# 默认使用“mysql_native_password”插件认证
# 如果使用的是mysql 8.0 需要设置 mysql_native_password,5.7并不需要
# default_authentication_plugin=mysql_native_password
# 关闭 only_full_group_by
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

修改完毕之后,重启mysql服务。

2.2.2 导入数据库(用docker部署,docker启动时会自动初始化,不需要导入)

启动idea,右上角选择open,找到mall4j-bbc的文件夹

idea open

在项目中会有一个 db 文件夹 如图所示:

db文件夹

里面会有很多的数据库文件,按照0、1、2、3的顺序将0schema.sql1yami_bbc.sql2area.sql3xxl_job.sql 导入mysql中。

问:那其他的数据库文件是干嘛的?

答:是更新过了某个时间更新代码时,更新的sql补丁,总数据都在上面三个文件中,所以初始化的时候,只要将三个文件按顺序导入数据库即可。

3. 配置环境信息准备开始打包

对于无法找到文件的用户,推荐使用idea快捷键 ctrl + shift + n 进行文件搜索

  1. 分别修改yami-shop-multishopyami-shop-platformyami-shop-apiyami-shop-im下的 \src\main\resources\application-prod.yml 更改为生产环境的数据库账号密码,端口号等(如果是 docker 环境请修改对应的application-docker.yml环境配置文件)

  2. 分别修改yami-shop-multishopyami-shop-platformyami-shop-apiyami-shop-im修改yami-shop-admin\src\main\resources\logback-prod.xml 修改里面的PROJECT_PATH/opt/projects/yami-b2b2c 改为自己生产环境的项目路径(如果是 docker 环境请修改对应的logback-docker.yml环境配置文件)

  3. 根据需要,修改yami-shop-multishopyami-shop-platformyami-shop-apiyami-shop-im 下的\src\main\resources\application-prod.yml线程数量(如果是 docker 环境请修改对应的application-docker.yml环境配置文件)

值得注意的是:docker环境是优先读取环境变量的,在docker-compose 文件

    environment:
      - TZ=Asia/Shanghai
      - MYSQL_HOST=mall4j-mysql
      - MYSQL_PORT=3306
      - MYSQL_DATABASE=mall4j-bbc
      - MYSQL_USERNAME=root
      - MYSQL_PASSWORD=123456
      - REDIS_HOST=mall4j-redis
      - REDIS_PORT=6379
      - REDIS_DATABASE=1
      - REDIS_PASSWORD=

修改好环境信息之后才可以进行打包!!!

4.使用idea对项目进行打包

使用maven进行项目构建可以使用maven build相关命令,也可以直接在idea右侧 单击maven,点击clean,再点击build

maven build

  1. 修改完毕后打包,使用mvn clean package -DskipTests 命令进行打包,最终会生成很多的jar,我们需要其中四个。
  • 商城后台商家端接口 yami-shop-multishop\target\yami-shop-multishop-0.0.1-SNAPSHOT.jar
  • 商城后台平台端接口 yami-shop-platform\target\yami-shop-platform-0.0.1-SNAPSHOT.jar
  • 商城前端接口yami-shop-api\target\yami-shop-api-0.0.1-SNAPSHOT.jar
  • 商城客服消息接口yami-shop-im\target\yami-shop-im-0.0.1-SNAPSHOT.jar
  1. 将四个jar上传到生产环境的服务器中

5. 启动

5.1不使用docker进行部署

如果步骤” 配置环境信息准备开始打包“ 中修改了PROJECT_PATH 那么对应的路径也要跟着修改

  1. 创建存放项目jar的文件夹和日志文件的文件夹

    mkdir -p /opt/projects/yami-b2b2c/log
    
  2. 将4个jar上传至 /opt/projects/yami-b2b2c 目录中

  3. 启动jar

    # 启动api,1g内存,可以根据服务器内存调整大小,推荐最低1G
    java -jar -Xms1024m -Xmx1024m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -Dspring.profiles.active=prod /opt/projects/yami-b2b2c/yami-shop-api-0.0.1-SNAPSHOT.jar > "/opt/projects/yami-b2b2c/log/api-console.log" &
    
    # 启动商家端,512M内存,可以根据服务器内存调整大小,推荐最低512M
    java -jar -Xms512m -Xmx512m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -Dspring.profiles.active=prod /opt/projects/yami-b2b2c/yami-shop-multishop-0.0.1-SNAPSHOT.jar > "/opt/projects/yami-b2b2c/log/multishop-console.log" &
    
    # 启动客服服务,512M内存,可以根据服务器内存调整大小,推荐最低512M
    java -jar -Xms512m -Xmx512m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -Dspring.profiles.active=prod /opt/projects/yami-b2b2c/yami-shop-im-0.0.1-SNAPSHOT.jar > "/opt/projects/yami-b2b2c/log/im-console.log" &
    
    # 启动平台端服务,512M内存,可以根据服务器内存调整大小,推荐最低512M
    java -jar -Xms512m -Xmx512m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -Dspring.profiles.active=prod /opt/projects/yami-b2b2c/yami-shop-platform-0.0.1-SNAPSHOT.jar > "/opt/projects/yami-b2b2c/log/platform-console.log" &
    

不使用docker部署,需要将xxl-job也打包上传到服务器,同时启动

5.2使用docker进行部署

在本文件所在的目录下有个yami-shop 文件夹,压缩,上传到linux,解压

  1. 如果数据库没有初始化,在mall4j-bbc项目的db 文件夹里面会有很多的数据库文件,将0schema.sql1yami_bbc.sql2area.sql3xxl_job.sql 上传到/mysql/initdb文件夹中。
  2. 根据需要修改my.cnf,如果是新项目,可以不用修改
  3. 将打包好4个jar包,分别放到/yami-shop/yami-shop-api,/yami-shop/yami-shop-multishop,/yami-shop/yami-shop-platform,/yami-shop/yami-shop-im文件夹,(dockerfile一般不需要改动,除非你有特别需),等待docker-compose 启动

6. nginx配置

nginx配置可以参考 本文件所在的目录下有个yami-shop/nginx/conf.d 文件夹,有4个配置文件,内有详细的配置文件 ,可以参考:

b2b2c-api.conf

b2b2c-im.conf

b2b2c-multishop.conf

b2b2c-platform.conf

7. xxl-job

下载xxl-job

github下载地址:https://github.com/xuxueli/xxl-job/releases/tag/2.3.0

gitee下载地址:https://gitee.com/xuxueli0323/xxl-job

用idea打开项目,修改xxl-job-admin 模块下的properties 连接数据库,数据库的默认配置已经在商城的java项目的db文件夹3xxl_job.sql 这里有初始话的信息了,记得导入

关于跨域

关于跨域,目前已经在java后台实现了跨域的配置,修改CorsConfig 将里面*的域名改为自己需要的域名即可。