方案一:JAR部署方案

1. 正式环境部署

部署方案采用nginx+tomcat部署方案
后端服务通过JAR方式运行
前端项目build后的静态资源,部署到nginx中

2. 后台项目jeecg-boot打jar包

  • 通过jeecg-boot-parent打包项目。
  • jeecg-boot-module-system作为启动项目。
  1. 修改数据库连接 application-prod.yml
  2. 修改缓存redis配置 application-prod.yml
  3. 修改上传附件配置 application-prod.yml

  1. 切换配置为线上配置 application.yml
    相关配置文件有application-dev.yml,application-prod.yml,application-test.yml和application.yml,在application.yml中指定哪个配置文件生效。

  1. 修改pom.xml加上打包插件
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

我的项目中用的是以下打包插件:

<plugins><!--<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin> --><!-- 指定JDK编译版本 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin>
</plugins>
  1. 执行下jeecg-boot-parent的 install 操作

  1. maven package 打 jar 包

  1. 找到jeecg-boot-module-system-2.0.0.jar JAR包

  1. 后台项目jeecg-boot启动
    通过命令启动项目:
  • Window下启动命令:
>> java -jar D:\jeecg-boot-module-system-2.0.0.jar
  • Linux下后台进程启动命令:
>> nohup java -jar jeecg-boot-module-system-2.0.0.jar >catalina.out 2>&1 &
  • 关掉项目:
>> ps -ef|grep java
>> kill 进程号

3. 前台项目build

  1. 修改后台接口服务地址 public/index.html
window._CONFIG['domianURL'] = 'http://localhost:8080/jeecg-boot';
window._CONFIG['imgDomainURL'] = 'http://localhost:8080/jeecg-boot/sys/common/view';
window._CONFIG['pdfDomainURL'] = 'http://localhost:8080/jeecg-boot/sys/common/pdf/pdfPreviewIframe';

重要提示:

  • 后台服务接口地址,一定要配置外网的IP或者域名,配置内网域名后台访问不到的。
  • 后台启动默认名字jeecg-boot,不建议修改。如果需要修改,请自行替换此文中所有提到项目名jeecg-boot的地方;
    同时修改前端代码 src/utils/request.js,里面的项目名字。
const service = axios.create({baseURL: '/jeecg-boot', // api base_urltimeout: 6000 // 请求超时时间
})
  1. 使用build命令打包项目

build完成后台会生成一个dist的目录该目录下即为build后的文件。

  1. nginx部署前端项目
    拷贝dist下的代码到nginx安装目录下html目录中,即可。

4. nginx配置

  1. nginx监听80端口,配置文件:conf/nginx.conf
server {listen       80;server_name  你的域名;# 后台服务配置,配置了这个location便可以通过 http://域名/jeecg-boot/xxxx 访问        location ^~ /jeecg-boot {proxy_pass              http://127.0.0.1:8080/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;}# 解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题location / {root   html;index  index.html index.htm;if (!-e $request_filename) {rewrite ^(.*)$ /index.html?s=$1 last;break;}}}
  1. nginx 开启压缩,提高首页访问效率
    nginx.conf 的 http 中加入以下片断:
# gzip config
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;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";

参考图:

  1. 配置后启动nginx
    通过:http://你的域名 访问项目,出现如下页面,使用账户/密码:admin/123456 登录成功即可

方案二:WAR部署方案

1. 正式环境部署

部署方案采用nginx+tomcat部署方案
后端服务发布部署到tomcat中
前端项目由于build后都是静态问题,部署到nginx中

2. 后台项目jeecg-boot打war包(jeecg-boot-module-system)

后台项目jeecg-boot-module-system打war包之前要进行如下改动:

  1. pom.xml文件中项目打包格式设置为war,具体配置如下:
<modelVersion>4.0.0</modelVersion>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-module-system</artifactId>
<version>2.0.0</version>
<packaging>war</packaging>
  1. pom.xml文件删除插件spring-boot-maven-plugin,下面配置删除
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>
  1. 增加项目web容器部署的支持,修改类/src/main/java/org/jeecg/JeecgApplication.java,代码如下:
package org.jeecg;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;import springfox.documentation.swagger2.annotations.EnableSwagger2;@SpringBootApplication
@EnableSwagger2
public class JeecgApplication extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(JeecgApplication.class);}public static void main(String[] args) {System.setProperty("spring.devtools.restart.enabled", "true");SpringApplication.run(JeecgApplication.class, args);}
}
  1. 注释掉WebSocket配置
    将此类注释掉:jeecg-boot-module-system/org.jeecg.config.WebSocketConfig
  2. 修改配置文件(数据库和redis配置)
  • 修改数据库连接 application-prod.yml
  • 修改缓存redis配置 application-prod.yml
  • 修改上传附件配置 application-prod.yml

  • 切换配置为线上配置 application.yml

打包:

  1. 首先执行下jeecg-boot-parent的install 操作

  1. 然后 maven package 打war包

3. 后台项目jeecg-boot部署tomcat

  1. 设置tomcat端口号 8080,设置tomcat编码 URIEncoding=“UTF-8”
  2. 部署项目到tomcat安装目录webapps/jeecg-boot工程目录下

部署完后通过http://localhost:8080/jeecg-boot 可以访问项目,提示token错误说明部署成功。
注意:

  1. tomcat解压war后的目录名称即你访问的根路径,即这里的jeecg-boot
  2. 新版的swagger需要访问http://localhost:8080/jeecg-boot/doc.html

4. 前台项目build及nginx部署同方案一

配置后启动tomcat,启动nginx。

方案三:极简部署方案,基于 SpringBoot 特性

  1. 首先修改配置,去掉项目名 jeecg-boot
ant-design-jeecg-vue/src/utils/request.js
ant-design-jeecg-vue/public/index.html


  1. 修改路由History 模式为“hash”
src/router/index.js


然后 ant-design-jeecg-vue 运行 build:

>> npm run build
  1. 然后将编译之后dist下的文件复制到 jeecg-boot-module-system 项目的 /src/main/resources/static 目录下
  2. 修改springboot项目启动,根路径访问页面为 index.html
    jeecg-boot-module-system\src\main\java\org\jeecg\config\WebMvcConfiguration
/*** 访问根路径默认跳转 index.html页面 (简化部署方案: 可以把前端打包直接放到项目的 webapp,上面的配置)*/
@Override
public void addViewControllers(ViewControllerRegistry registry) {registry.addViewController("/").setViewName("index.html");
}
  1. 修改springboot项目的启动名字,去掉项目名 jeecg-boot
jeecg-boot-module-system/src/main/resources/application-dev.yml

  1. 重新启动项目,访问 http://localhost:8080/ 就可以看到效果

JeecgBoot项目上线发布的几种方式相关推荐

  1. 微会动平台上线发布支持13种3D微信摇一摇活动现场微信互动游戏产品

    当下,会议等市场活动场景上企业利用微信营销日趋广泛.统计数据显示,目前,微信和WeChat的合并月活跃账户数达到9.63亿,而新兴的公众号平台拥有1000万个.微信作为热门的社交信息平台,也是移动端的 ...

  2. 代码和产品发布的几种方式

    代码和产品发布的几种方式   最近有几个朋友提起"灰度发布"这个概念和相关的问题.想解释一下几种具体的发布方式(具体名称中文翻译不一定正确).他们的优缺点和实现难点. 这几种方式都 ...

  3. Spring Boot 项目鉴权的 4 种方式

    转自:枕边书 链接:https://zhenbianshu.github.io/ 文章介绍了spring-boot中实现通用auth的四种方式,包括 传统AOP.拦截器.参数解析器和过滤器,并提供了对 ...

  4. 【302期】SpringBoot 项目鉴权的 4 种方式,你了解吗?

    点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每一天进步一点点,是成功的开始... 文章介绍了 ...

  5. WCF元数据发布的2种方式:httpGetEnabled与mex

    一.元数据即WSDL,描述了服务的细节,以便客户端使用. 二.必须为服务配置ServiceMetadata行为,才能为其生成WSDL,才能再使用httpGetEnabled或mex将其公布出去 三.这 ...

  6. java Web发布的两种方式

    一种是直接调用API: Endpoint.publish("http://192.168.14.117:8888/java6ws/Java6WS", new Java6WS()); ...

  7. 开源android项目到jcenter,手把手教你将Android项目开源到JCenter两种方式以及挖坑和填坑(一)...

    - 前言 开发中,或多或少都会用到无私的程序猿分享的开源项目,Androidstudio中使用开源也很方便 例如家喻户晓的Rxjava,只需要一句话compile 'io.reactivex:rxja ...

  8. Vue项目中跨域的几种方式

    经常使用vue + webpack搭建项目,但在请求某些json数据时存在跨域问题,此时有几种修改方法 1. 修改后台header, 但如果只是请求外部数据,是没法修改后台配置的 1 header(' ...

  9. .net mvc core网站发布的几种方式

    简单的说下.netcore发布程序的几种方法:1.vs项目里自带的发布功能 . 2.dos下dotnet publish命令,发布的位置可以是exe形式,也可以部署在iis服务器上,发布的程序可以是依 ...

最新文章

  1. gcc编译参数[转]
  2. JavaScript中的作用域,闭包和上下文
  3. python学精通要多久-python多久能精通
  4. AppStreamMgr
  5. 《仙剑奇侠传7》试玩版战斗系统拆解与分析
  6. 开发app用户协议_家电商城APP开发,方便用户选购家电商品
  7. 内存泄露检测 vld
  8. Spring的IOC原理(通俗解释)
  9. Java Servlet cookie
  10. 【排序算法时间复杂度分析】递推式
  11. 仿 qq音乐播放器 html代码,仿QQ音乐播放器
  12. 接入微信小程序统一服务消息
  13. 深度学习中的迁移学习介绍
  14. 计算机电路中bga是什么,什么是BGA BGA的结构和性能
  15. 麻省理工学院计算机科学与工程博士,2020年麻省理工学院博士读几年
  16. 程序猿生存指南-13 再见老潘
  17. iPhone手机屏幕尺寸详细表格、A10和A11处理器介绍
  18. c语言哑铃,使用一副哑铃,做好8个动作,就能练遍全身肌肉
  19. 实现网站的高并发访问
  20. 《校园封神榜》典型用户及其场景描述

热门文章

  1. inode_operations介绍
  2. AI智能电销机器人到底好吗?
  3. 在手机上用cdsn写博客
  4. Erlang OTP
  5. coTurn的附加程序命令行测试
  6. 粒度计行业调研报告 - 市场现状分析与发展前景预测
  7. VS2010 新建C#项目中没有app.config文件,手动添加方法
  8. Halcon 《机器视觉算法及应用》十例(其二)
  9. MySQL 不同版本默认字符集
  10. 【.pth模型转换为.onnx模型】模型转换 英特尔神经计算棒 树莓派