• jnpf3.6私有化部署


    文件内容

    project

            

    web


    >

    1. 特别说明:源码、JDK、MySQL、Redis等安装或存放路径禁止包含中文、空格、特殊字符等
    2. ## 一 技术栈
    3. - 主框架:`Spring Boot` + `Spring Framework`
    4. - 持久层框架:`MyBatis-Plus`
    5. - 数据库连接池:`Alibaba Druid`
    6. - 多数据源:`Dynamic-Datasource`
    7. - 数据库兼容: `MySQL`(默认)、`SQLServer`、`Oracle`、`PostgreSQL`、`达数据库`、`人大金仓数据库`
    8. - 分库分表解决方案:`Apache ShardingSphere`
    9. - 权限认证框架:`Sa-Token`+`JWT`
    10. - 代码生成器:`MyBatis-Plus-Generator`
    11. - 模板引擎:`Velocity`
    12. - 任务调度:`XXL-JOB`
    13. - 分布式锁:`Lock4j`
    14. - JSON序列化: `Jackson`&`Fastjson`
    15. - 缓存数据库:`Redis`
    16. - 校验框架:`Validation`
    17. - 分布式文件存储:兼容`MinIO`及多个云对象存储,如阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS等
    18. - 工具类框架:`Hutool`、`Lombok`
    19. - 接口文档:`Knife4j`
    20. - 项目构建:`Maven`
    21. ## 二 环境要求
    22. ### 2.1 开发环境
    23. | 类目 | 版本说明或建议                                                                                                                                                       |
    24. | --- |---------------------------------------------------------------------------------------------------------------------------------------------------------------|
    25. | 电脑配置 | 建议开发电脑I3及以上CPU,内存16G及以上                                                                                                                                       |
    26. | 操作系统 | Windows 10/11,MacOS                                                                                                                                           |
    27. | JDK | 建议使用`1.8.0_281`及以上版本,可使用`Eclipse Temurin JDK 8`、`Alibaba Dragonwell 8`、`BiSheng JDK 8`等                                                                       |
    28. | Maven | `3.6.3`及以上版本                                                                                                                                                  |
    29. | 数据缓存 | Redis `3.2.100`(Windows)/`4.0.x`+ (Linux,Mac)  或  TongRDS `2.2.x`                                                                                             |
    30. | 数据库 | 兼容`MySQL 5.7.x/8.0.x`(默认)、`SQLServer 2012+`、`Oracle 11g`、`PostgreSQL 12+`、`达梦数据库(DM8)`、`人大金仓数据库(KingbaseES_V8R6)`                                             |
    31. | 后端开发 | `IDEA2020`及以上版本、`Eclipse` 、 `Spring Tool Suite`等                                                                                                              |
    32. | 前端开发 | `Node.js` v16.15.0(某些情况下可能需要安装 `Python3`)及以上版本;
      `Yarn` v1.22.x 版本;
      `pnpm` v8.10及以上版本;
      浏览器推荐使用`Chrome` 90及以上版本;
      `Visual Studio Code`(简称VSCode) |
    33. | 移动端开发 | `Node.js` v12/v14/v16(某些情况下可能需要安装 Python3);
      HBuilder X(最新版)                                                                                               |
    34. | 文件存储 | 默认使用本地存储,兼容 `MinIO` 及多个云对象存储,如`阿里云 OSS`、`华为云 OBS`、`七牛云 Kodo`、`腾讯云 COS`等                                                                                       |
    35. ### 2.2 运行环境
    36. > 适用于测试或生产环境
    37. | 类目 | 版本说明或建议                                                                                                           |
    38. | --- |-------------------------------------------------------------------------------------------------------------------|
    39. | 服务器配置 | 最低配置要求:4c/16G/50G;                                                                                                |
    40. | 操作系统 | 推荐使用`Ubuntu 18.0.4`及以上版本,兼容 `统信UOS`,`OpenEuler`,`麒麟服务器版`等国产信创环境;                                                  |
    41. | JRE | 建议使用`1.8.0_281`及以上版本,如`Eclipse Temurin JRE 8/11/17`、`Alibaba Dragonwell 8/11/17`、`BiSheng JRE 8/11/17`;           |
    42. | 数据缓存 | Redis `4.0.x+` 或 TongRDS `2.2.x`                                                                                  |
    43. | 数据库 | 兼容`MySQL 5.7.x/8.0.x`(默认)、`SQLServer 2012+`、`Oracle 11g`、`PostgreSQL 12+`、`达梦数据库(DM8)`、`人大金仓数据库(KingbaseES_V8R6)` |
    44. | 中间件(可选) | 东方通 `Tong-web`、金蝶天燕-应用服务器`AAS` v10;                                                                               |
    45. | 文件存储 | 默认使用本地存储,兼容`MinIO`及多个云对象存储,如阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS等                                                     |
    46. | 前端服务器 | Nginx 建议使用`1.18.0`及以上版本  或 TongHttpServer `6.0`                                                                   |
    47. ## 三 IDEA插件
    48. - `Lombok`(必须)
    49. - `Alibaba Java Coding Guidelines`
    50. - `MybatisX`
    51. ## 四 Maven私服配置
    52. > Apache Maven 3.6.3及以上版本
      解决以下依赖无法从公共Maven仓库下载的问题
    53. - com.dm:DmJdbcDriver18:1.8.0
    54. - com.kingbase8:kingbase8-jdbc:2.0
    55. - dingtalk-sdk-java:taobao-sdk-java-source:1.0
    56. - dingtalk-sdk-java:taobao-sdk-java:1.0
    57. 打开Maven安装目录中的 `conf/settings.xml` 文件,
    58. 在 `` 中添加如下内容
    59. ```xml
    60.   maven-releases
    61.   jnpf-user
    62.   HLrQ0MA%S1nE
    63. ```
    64. 在 `` 中添加
    65. ```xml
    66.   maven-releases
    67.   *
    68.   maven-releases
    69.   https://repository.jnpfsoft.com/repository/maven-public/
    70. ```
    71. ## 五 配套项目
    72. | 项目 | 分支 | 分支(Coding) | 说明 |
    73. | --- | --- | --- | --- |
    74. | **后端** |  |  |  |
    75. | jnpf-common | v3.6.x | v3.6.x-stable | java基础依赖项目源码 |
    76. | jnpf-file-core-starter | v3.6.x | v3.6.x-stable | 文件基础依赖项目源码 |
    77. | jnpf-scheduletask | v3.6.x | v3.6.x-stable | 任务调度客户端依赖及服务端项目源码 |
    78. | jnpf-datareport | v3.6.x | v3.6.x-stable | 报表后端项目源码 |
    79. | jnpf-file-preview | v3.6.x | v3.6.x-stable | 本地文档预览项目源码 |
    80. | **前端** |  |  |  |
    81. | jnpf-web | v3.6.x | v3.6.x-stable | 前端主项目(Vue2)源码 |
    82. | jnpf-web-vue3 | v3.6.x | v3.6.x-stable | 前端主项目(Vue3)源码 |
    83. | jnpf-web-datascreen | v3.6.x | v3.6.x-stable | 大屏前端项目(Vue2)源码 |
    84. | jnpf-web-datascreen-vue3 | v3.6.x | v3.6.x-stable | 大屏前端项目(Vue3)源码 |
    85. | jnpf-web-datareport | v3.6.x | v3.6.x-stable | 报表前端项目源码 |
    86. | **移动端** |  |  |  |
    87. | jnpf-app | v3.6.x | v3.6.x-stable | 移动端项目(Vue2)源码 |
    88. | jnpf-app-vue3 | v3.6.x | v3.6.x-stable | 移动端项目(Vue3)源码 |
    89. | **静态资源** |  |  |  |
    90. | jnpf-resources | v3.6.x | v3.6.x-stable | 静态资源 |
    91. | **数据库** |  |  |  |
    92. | jnpf-database | v3.6.x | v3.6.x-stable | 数据库脚本或文件 |
    93. ## 六 开发环境
    94. ### 6.1 导入数据库脚本
    95. > 以 MySQL数据库为例
      字符集:utf8mb4
      排序规则:utf8mb4_general_ci
    96. #### 6.1.1 创建平台数据库
    97. 在MySQL创建 `jnpf_init` 数据库,并将 `jnpf-database/MySQL/jnpf_init.sql` 以【新建查询】方式导入
    98. #### 6.1.2 创建系统调度数据库
    99. 在MySQL创建 `jnpf_xxjob` 数据库,并将 `jnpf-database/MySQL/jnpf_xxjob_init.sql` 以【新建查询】方式导入
    100. ### 6.2 导入依赖
    101. #### 6.2.1 基础依赖
    102. 详见 `jnpf-common` 项目中的 `README.md` 文档说明
    103. #### 6.2.2 文件基础依赖
    104. 详见 `jnpf-file-starter` 项目中的 `README.md` 文档说明
    105. #### 6.2.3 导入系统调度服务端
    106. 详见 `jnpf-scheduletask` 项目中的 `README.md` 文档说明
    107. ### 6.3 项目配置
    108. 打开编辑 `jnpf-admin/src/main/resources/application.yml`
    109. #### 6.3.1 指定环境配置
    110. - `application-dev.yml`  开发环境(默认)
    111. - `application-test.yml`  测试环境
    112. - `application-preview.yml` 预发布环境
    113. - `application-pro.yml` 生产环境
    114. ```yaml
    115. # application.yml第5行,可选值:dev(默认)|test|pro|preview
    116. active: dev
    117. ```
    118. #### 6.3.2 配置域名
    119. 打开编辑 `jnpf-admin/src/main/resources/application.yml` ,修改以下配置
    120. ```yaml
    121.   PreviewType: kkfile #文件预览方式 (1.yozo 2.kkfile)默认使用kkfile
    122.   kkFileUrl: http://127.0.0.1:30090/FileServer/ #kkfile文件预览服务地址
    123.   ApiDomain: http://127.0.0.1:30000 #后端域名(文档预览中使用)
    124.   FrontDomain: http://127.0.0.1:3000 #前端域名(文档预览中使用)
    125.   AppDomain: http://127.0.0.1:8080 #app/h5端域名配置(文档预览中使用)
    126. ```
    127. #### 6.3.3 数据源配置
    128. 打开编辑 `jnpf-admin/src/main/resources/application-dev.yml`,修改以下配置
    129. > 具体配置说明参考:[https://jnpfsoft.coding.net/p/jnpf-docs/wiki/2165](https://jnpfsoft.coding.net/p/jnpf-docs/wiki/2165)
    130. ```yaml
    131.   datasource:
    132.     db-type: MySQL #数据库类型(可选值 MySQL、SQLServer、Oracle、DM8、KingbaseES、PostgreSQL,请严格按可选值填写)
    133.     host: 192.168.0.213
    134.     port: 3306
    135.     username: root
    136.     password: a26d27e6a6cd4538
    137.     db-name: java_boot_test
    138.     db-schema: #金仓达梦选填
    139.     prepare-url: #自定义url
    140. ```
    141. #### 6.3.4 Redis配置
    142. 打开编辑 `jnpf-admin/src/main/resources/application-dev.yml`,修改以下配置
    143. > 支持单机模式和集群模式,配置默认为单机模式
    144. **Redis单机模式**
    145. ```yaml
    146.   redis:
    147.     database: 200 #缓存库编号
    148.     host: 192.168.0.213
    149.     port: 6379
    150.     password: ucfbVgZgyB0dBQdh  # 密码为空时,请将本行注释
    151.     timeout: 3000 #超时时间(单位:秒)
    152.     lettuce: #Lettuce为Redis的Java驱动包
    153.       pool:
    154.         max-active: 8 # 连接池最大连接数
    155.         max-wait: -1ms  # 连接池最大阻塞等待时间(使用负值表示没有限制)
    156.         min-idle: 0 # 连接池中的最小空闲连接
    157.         max-idle: 8 # 连接池中的最大空闲连接
    158. ```
    159. **Redis集群模式**
    160. ```yaml
    161.  redis:
    162.    cluster:
    163.      nodes:
    164.        - 192.168.0.225:6380
    165.        - 192.168.0.225:6381
    166.        - 192.168.0.225:6382
    167.        - 192.168.0.225:6383
    168.        - 192.168.0.225:6384
    169.        - 192.168.0.225:6385
    170.    password: 123456 # 密码为空时,请将本行注释
    171.    timeout: 3000 # 超时时间(单位:秒)
    172.    lettuce: #Lettuce为Redis的Java驱动包
    173.      pool:
    174.        max-active: 8 # 连接池最大连接数
    175.        max-wait: -1ms  # 连接池最大阻塞等待时间(使用负值表示没有限制)
    176.        min-idle: 0 # 连接池中的最小空闲连接
    177.        max-idle: 8 # 连接池中的最大空闲连接
    178. ```
    179. #### 6.3.5 静态资源配置
    180. 打开编辑 `jnpf-admin/src/main/resources/application-dev.yml` ,修改以下配置
    181. > 默认使用本地存储,兼容`MinIO`及多个云对象存储,如阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS等
    182. ```yaml
    183.   # ===================== 文件存储配置 =====================
    184.   file-storage: #文件存储配置,不使用的情况下可以不写
    185.     default-platform: local-plus-1 #默认使用的存储平台
    186.     thumbnail-suffix: ".min.jpg" #缩略图后缀,例如【.min.jpg】【.png】
    187.     local-plus: # 本地存储升级版
    188.       - platform: local-plus-1 # 存储平台标识
    189.         enable-storage: true  #启用存储
    190.         enable-access: true #启用访问(线上请使用 Nginx 配置,效率更高)
    191.         domain: "" # 访问域名,例如:“http://127.0.0.1:8030/”,注意后面要和 path-patterns 保持一致,“/”结尾,本地存储建议使用相对路径,方便后期更换域名
    192.         base-path: D:/project/jnpf-resources/ # 基础路径
    193.         path-patterns: /** # 访问路径
    194.         storage-path:  # 存储路径
    195.     aliyun-oss: # 阿里云 OSS ,不使用的情况下可以不写
    196.       - platform: aliyun-oss-1 # 存储平台标识
    197.         enable-storage: false  # 启用存储
    198.         access-key: ??
    199.         secret-key: ??
    200.         end-point: ??
    201.         bucket-name: ??
    202.         domain: ?? # 访问域名,注意“/”结尾,例如:https://abc.oss-cn-shanghai.aliyuncs.com/
    203.         base-path: hy/ # 基础路径
    204.     qiniu-kodo: # 七牛云 kodo ,不使用的情况下可以不写
    205.       - platform: qiniu-kodo-1 # 存储平台标识
    206.         enable-storage: false  # 启用存储
    207.         access-key: ??
    208.         secret-key: ??
    209.         bucket-name: ??
    210.         domain: ?? # 访问域名,注意“/”结尾,例如:http://abc.hn-bkt.clouddn.com/
    211.         base-path: base/ # 基础路径
    212.     tencent-cos: # 腾讯云 COS
    213.       - platform: tencent-cos-1 # 存储平台标识
    214.         enable-storage: false  # 启用存储
    215.         secret-id: ??
    216.         secret-key: ??
    217.         region: ?? #存仓库所在地域
    218.         bucket-name: ??
    219.         domain: ?? # 访问域名,注意“/”结尾,例如:https://abc.cos.ap-nanjing.myqcloud.com/
    220.         base-path: hy/ # 基础路径
    221.     minio: # MinIO,由于 MinIO SDK 支持 AWS S3,其它兼容 AWS S3 协议的存储平台也都可配置在这里
    222.       - platform: minio-1 # 存储平台标识
    223.         enable-storage: true  # 启用存储
    224.         access-key: Q9jJs2b6Tv
    225.         secret-key: Thj2WkpLu9DhmJyJ
    226.         end-point: http://192.168.0.207:9000/
    227.         bucket-name: jnpfsoftoss
    228.         domain:  # 访问域名,注意“/”结尾,例如:http://minio.abc.com/abc/
    229.         base-path:  # 基础路径
    230. ```
    231. #### 6.3.6 第三方登录配置
    232. 打开编辑 `jnpf-admin/src/main/resources/application-dev.yml` ,修改以下配置
    233. > 配置默认关闭
    234. ```yaml
    235. socials:
    236.   # 第三方登录功能开关(false-关闭,true-开启)
    237.   socials-enabled: false
    238.   config:
    239.     - # 微信
    240.       provider: wechat_open
    241.       client-id: your-client-id
    242.       client-secret: your-client-secret
    243.     - # qq
    244.       provider: qq
    245.       client-id: your-client-id
    246.       client-secret: your-client-secret
    247.     - # 企业微信
    248.       provider: wechat_enterprise
    249.       client-id: your-client-id
    250.       client-secret: your-client-secret
    251.       agentId: your-agentId
    252.     - # 钉钉
    253.       provider: dingtalk
    254.       client-id: your-client-id
    255.       client-secret: your-client-secret
    256.       agentId: your-agentId
    257.     - # 飞书
    258.       provider: feishu
    259.       client-id: your-client-id
    260.       client-secret: your-client-secret
    261.     - # 小程序
    262.       provider: wechat_applets
    263.       client-id: your-client-id
    264.       client-secret: your-client-secret
    265. ```
    266. #### 6.3.7 任务调度配置
    267. 打开编辑 `jnpf-admin/src/main/resources/application-dev.yml` ,修改以下配置,调整 xxl.job.admin.addresses 地址
    268. ```yaml
    269. xxl:
    270.   job:
    271.     accessToken: ''
    272.     i18n: zh_CN
    273.     logretentiondays: 30
    274.     triggerpool:
    275.       fast:
    276.         max: 200
    277.       slow:
    278.         max: 100
    279.     # xxl-job服务端地址
    280.     admin:
    281.       addresses: http://127.0.0.1:30020/xxl-job-admin/
    282.     executor:
    283.       address: ''
    284.       appname: xxl-job-executor-sample1
    285.       ip: ''
    286.       logpath: /data/applogs/xxl-job/jobhandler
    287.       logretentiondays: 30
    288.       port: 9999
    289.   # rest调用xxl-job接口地址
    290.   admin:
    291.     register:
    292.       handle-query-address: ${xxl.job.admin.addresses}api/handler/queryList
    293.       job-info-address: ${xxl.job.admin.addresses}api/jobinfo
    294.       log-query-address: ${xxl.job.admin.addresses}api/log
    295.       task-list-address: ${xxl.job.admin.addresses}api/ScheduleTask/List
    296.       task-info-address: ${xxl.job.admin.addresses}api/ScheduleTask/getInfo
    297.       task-save-address: ${xxl.job.admin.addresses}api/ScheduleTask
    298.       task-update-address: ${xxl.job.admin.addresses}api/ScheduleTask
    299.       task-remove-address: ${xxl.job.admin.addresses}api/ScheduleTask/remove
    300.       task-start-or-remove-address: ${xxl.job.admin.addresses}api/ScheduleTask/updateTask
    301. ```
    302. ## 七 启动项目
    303. 找到`jnpf-admin/src/main/java/JnpfAdminApplication.java`,右击运行即可。
    304. ## 八 项目发布
    305. - 在IDEA中,双击右侧Maven中 `jnpf-java-boot` > `Lifecycle` > `clean` 清理项目
    306. - 在IDEA中,双击右侧Maven中 `jnpf-java-boot` > `Lifecycle` > `package` 打包项目
    307. - 打开 `jnpf-java-boot\jnpf-admin\target`,将 `jnpf-admin-3.5.0-RELEASE.jar` 上传至服务器
    308. ## 九 接口文档
    309. - `http://localhost:30000/doc.html`

    运行后结果:

  • 相关阅读:
    Ajax系列之文件上传进度展示
    【黑马-SpringCloud技术栈】【02】服务拆分及远程调用_服务提供者与消费者
    MyBatis实现MySQL表字段及结构的自动增删
    成为会带团队的技术人 在管理艺术中寻找确定性的“工程逻辑”
    Typescript的declare 关键字
    tomcat 7 任意文件上传漏洞(信息搜集与漏洞探测)
    北京化工大学数据结构2022/11/3作业 题解
    .mxdown-V-XXXXXXXX勒索病毒感染后的下一步:恢复您的文件
    Tomcat
    BI系统打包Docker镜像及部署的技术难度和实现
  • 原文地址:https://blog.csdn.net/weixin_42575806/article/details/137278781