JeecgBoot项目上线发布的几种方式
方案一:JAR部署方案
1. 正式环境部署
部署方案采用nginx+tomcat部署方案
后端服务通过JAR方式运行
前端项目build后的静态资源,部署到nginx中
2. 后台项目jeecg-boot打jar包
- 通过jeecg-boot-parent打包项目。
- jeecg-boot-module-system作为启动项目。
- 修改数据库连接 application-prod.yml
- 修改缓存redis配置 application-prod.yml
- 修改上传附件配置 application-prod.yml
- 切换配置为线上配置 application.yml
相关配置文件有application-dev.yml,application-prod.yml,application-test.yml和application.yml,在application.yml中指定哪个配置文件生效。
- 修改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>
- 执行下jeecg-boot-parent的 install 操作
- maven package 打 jar 包
- 找到jeecg-boot-module-system-2.0.0.jar JAR包
- 后台项目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
- 修改后台接口服务地址 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 // 请求超时时间
})
- 使用build命令打包项目
build完成后台会生成一个dist的目录该目录下即为build后的文件。
- nginx部署前端项目
拷贝dist下的代码到nginx安装目录下html目录中,即可。
4. nginx配置
- 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;}}}
- 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]\.";
参考图:
- 配置后启动nginx
通过:http://你的域名 访问项目,出现如下页面,使用账户/密码:admin/123456 登录成功即可
方案二:WAR部署方案
1. 正式环境部署
部署方案采用nginx+tomcat部署方案
后端服务发布部署到tomcat中
前端项目由于build后都是静态问题,部署到nginx中
2. 后台项目jeecg-boot打war包(jeecg-boot-module-system)
后台项目jeecg-boot-module-system打war包之前要进行如下改动:
- 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>
- pom.xml文件删除插件spring-boot-maven-plugin,下面配置删除
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>
- 增加项目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);}
}
- 注释掉WebSocket配置
将此类注释掉:jeecg-boot-module-system/org.jeecg.config.WebSocketConfig - 修改配置文件(数据库和redis配置)
- 修改数据库连接 application-prod.yml
- 修改缓存redis配置 application-prod.yml
- 修改上传附件配置 application-prod.yml
- 切换配置为线上配置 application.yml
打包:
- 首先执行下jeecg-boot-parent的install 操作
- 然后 maven package 打war包
3. 后台项目jeecg-boot部署tomcat
- 设置tomcat端口号 8080,设置tomcat编码 URIEncoding=“UTF-8”
- 部署项目到tomcat安装目录webapps/jeecg-boot工程目录下
部署完后通过http://localhost:8080/jeecg-boot 可以访问项目,提示token错误说明部署成功。
注意:
- tomcat解压war后的目录名称即你访问的根路径,即这里的jeecg-boot
- 新版的swagger需要访问http://localhost:8080/jeecg-boot/doc.html
4. 前台项目build及nginx部署同方案一
配置后启动tomcat,启动nginx。
方案三:极简部署方案,基于 SpringBoot 特性
- 首先修改配置,去掉项目名 jeecg-boot
ant-design-jeecg-vue/src/utils/request.js
ant-design-jeecg-vue/public/index.html
- 修改路由History 模式为“hash”
src/router/index.js
然后 ant-design-jeecg-vue 运行 build:
>> npm run build
- 然后将编译之后dist下的文件复制到 jeecg-boot-module-system 项目的 /src/main/resources/static 目录下
- 修改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");
}
- 修改springboot项目的启动名字,去掉项目名 jeecg-boot
jeecg-boot-module-system/src/main/resources/application-dev.yml
- 重新启动项目,访问 http://localhost:8080/ 就可以看到效果
JeecgBoot项目上线发布的几种方式相关推荐
- 微会动平台上线发布支持13种3D微信摇一摇活动现场微信互动游戏产品
当下,会议等市场活动场景上企业利用微信营销日趋广泛.统计数据显示,目前,微信和WeChat的合并月活跃账户数达到9.63亿,而新兴的公众号平台拥有1000万个.微信作为热门的社交信息平台,也是移动端的 ...
- 代码和产品发布的几种方式
代码和产品发布的几种方式 最近有几个朋友提起"灰度发布"这个概念和相关的问题.想解释一下几种具体的发布方式(具体名称中文翻译不一定正确).他们的优缺点和实现难点. 这几种方式都 ...
- Spring Boot 项目鉴权的 4 种方式
转自:枕边书 链接:https://zhenbianshu.github.io/ 文章介绍了spring-boot中实现通用auth的四种方式,包括 传统AOP.拦截器.参数解析器和过滤器,并提供了对 ...
- 【302期】SpringBoot 项目鉴权的 4 种方式,你了解吗?
点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每一天进步一点点,是成功的开始... 文章介绍了 ...
- WCF元数据发布的2种方式:httpGetEnabled与mex
一.元数据即WSDL,描述了服务的细节,以便客户端使用. 二.必须为服务配置ServiceMetadata行为,才能为其生成WSDL,才能再使用httpGetEnabled或mex将其公布出去 三.这 ...
- java Web发布的两种方式
一种是直接调用API: Endpoint.publish("http://192.168.14.117:8888/java6ws/Java6WS", new Java6WS()); ...
- 开源android项目到jcenter,手把手教你将Android项目开源到JCenter两种方式以及挖坑和填坑(一)...
- 前言 开发中,或多或少都会用到无私的程序猿分享的开源项目,Androidstudio中使用开源也很方便 例如家喻户晓的Rxjava,只需要一句话compile 'io.reactivex:rxja ...
- Vue项目中跨域的几种方式
经常使用vue + webpack搭建项目,但在请求某些json数据时存在跨域问题,此时有几种修改方法 1. 修改后台header, 但如果只是请求外部数据,是没法修改后台配置的 1 header(' ...
- .net mvc core网站发布的几种方式
简单的说下.netcore发布程序的几种方法:1.vs项目里自带的发布功能 . 2.dos下dotnet publish命令,发布的位置可以是exe形式,也可以部署在iis服务器上,发布的程序可以是依 ...
最新文章
- gcc编译参数[转]
- JavaScript中的作用域,闭包和上下文
- python学精通要多久-python多久能精通
- AppStreamMgr
- 《仙剑奇侠传7》试玩版战斗系统拆解与分析
- 开发app用户协议_家电商城APP开发,方便用户选购家电商品
- 内存泄露检测 vld
- Spring的IOC原理(通俗解释)
- Java Servlet cookie
- 【排序算法时间复杂度分析】递推式
- 仿 qq音乐播放器 html代码,仿QQ音乐播放器
- 接入微信小程序统一服务消息
- 深度学习中的迁移学习介绍
- 计算机电路中bga是什么,什么是BGA BGA的结构和性能
- 麻省理工学院计算机科学与工程博士,2020年麻省理工学院博士读几年
- 程序猿生存指南-13 再见老潘
- iPhone手机屏幕尺寸详细表格、A10和A11处理器介绍
- c语言哑铃,使用一副哑铃,做好8个动作,就能练遍全身肌肉
- 实现网站的高并发访问
- 《校园封神榜》典型用户及其场景描述