(window.webpackJsonp=window.webpackJsonp||[]).push([[269],{390:function(t,e,v){"use strict";v.r(e);var s=v(42),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,v=t._self._c||e;return v("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[v("h1",{attrs:{id:"内测预发布版本流程"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#内测预发布版本流程"}},[t._v("#")]),t._v(" 内测预发布版本流程")]),t._v(" "),v("p",[t._v("在相当长一段时间,不管是"),v("code",[t._v("swagger-bootstrap-ui")]),t._v("还是"),v("code",[t._v("Knife4j")]),t._v("的新版本发布,都是作者自己根据开发者提供的issues,解决的问题进行测试，测试无误后直接发布推送到Maven中央仓库")]),t._v(" "),v("p",[t._v("对于新版本并没有测试完全,这也导致了新版本发布后可能存在不稳定性,在以前关注的人数不多的情况下,影响不是很大,但是随着使用"),v("code",[t._v("Knife4j")]),t._v("的关注人数越来越多后,这样的发布机制,全靠作者一人之力是很难保证新版本的稳定性的")]),t._v(" "),v("p",[t._v("在QQ交流群沟通时,有开发者提议每次新版本发布时,可以先提前沟通,要发布那些内容,同时有空的可以帮忙内测,这也帮助提升"),v("code",[t._v("Knife4j")]),t._v("的新版本的稳定性")]),t._v(" "),v("p",[t._v("因此,针对上面的一个需求,开发者如何帮忙内测新版本写下了这篇文章,希望开发者能够和我一起共建"),v("code",[t._v("Knife4")]),t._v("的发展,每个新版本都能有保证其稳定性(至少不会出现影响使用的重大Bug)")]),t._v(" "),v("p",[t._v("在新版本发布时,我会在QQ群里邀请大家帮忙内测,确认无误后,新版本会推送到Maven中央仓库")]),t._v(" "),v("p",[v("strong",[t._v("在此也要特别感谢愿意帮忙内测预发布版本的开发者,非常感谢")])]),t._v(" "),v("h2",{attrs:{id:"spring-boot-spring-mvc-单体架构"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#spring-boot-spring-mvc-单体架构"}},[t._v("#")]),t._v(" Spring Boot & Spring MVC 单体架构")]),t._v(" "),v("p",[t._v("如果你是一个简单的Spring Boot或者是Spring MVC的单体架构,这种结构内测非常简单")]),t._v(" "),v("p",[t._v("1、首先,在Gitee的仓库"),v("a",{attrs:{href:"https://gitee.com/xiaoym/knife4j",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://gitee.com/xiaoym/knife4j"),v("OutboundLink")],1),t._v("下载,主要是"),v("code",[t._v("knife4j-vue")]),t._v("这个文件夹,如下图：")]),t._v(" "),v("p",[v("img",{attrs:{src:"/knife4j/img/knife4j/test-pre1.png",alt:""}})]),t._v(" "),v("p",[v("code",[t._v("knife4j")]),t._v("在2.x系列的版本后,使用Vue技术栈真正的前后端分离开发,"),v("code",[t._v("knife4j-vue")]),t._v("是前端的源码")]),t._v(" "),v("p",[t._v("2、将你们的项目运行起来,假如运行后的端口号是:"),v("code",[t._v("8999")])]),t._v(" "),v("p",[t._v("3、修改"),v("code",[t._v("knife4j-vue")]),t._v("的接口代理配置,在"),v("code",[t._v("knife4j-vue")]),t._v("文件夹下的"),v("code",[t._v("vue.config.js")]),t._v("文件中,修改"),v("code",[t._v("devServer")]),t._v("节点的配置:部分配置如下：")]),t._v(" "),v("div",{staticClass:"language-json extra-class"},[v("pre",{pre:!0,attrs:{class:"language-json"}},[v("code",[t._v("devServer"),v("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),v("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    proxy"),v("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),v("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n      "),v("span",{pre:!0,attrs:{class:"token property"}},[t._v('"/"')]),v("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),v("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        target"),v("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" 'http"),v("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),v("span",{pre:!0,attrs:{class:"token comment"}},[t._v("//localhost:8999/',")]),t._v("\n        ws"),v("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),v("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),v("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        changeOrigin"),v("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),v("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n      "),v("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n    "),v("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),v("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),v("p",[t._v("4、如果你的项目端口号是和我一样,同是8999,那么这里都不用修改,否则,修改成你自己项目的端口号")]),t._v(" "),v("blockquote",[v("p",[t._v("如果的电脑中没有安装Node环境,那么需要首先安装Node环境")]),t._v(" "),v("p",[t._v("其次,在执行运行命令yarn serve之前,你需要先执行命令yarn install进行依赖的下载")])]),t._v(" "),v("p",[t._v("5、运行"),v("code",[t._v("knife4j-vue")]),t._v("模块,使用命令"),v("code",[t._v("yarn serve")]),t._v(" ,接下来就可以进行内测调试了")]),t._v(" "),v("p",[t._v("以上步骤knife4j-vue文件推荐使用Visual Studio Code软件进行打开执行,和后端IDEA彻底分开,效果会不错.")]),t._v(" "),v("h2",{attrs:{id:"微服务架构"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#微服务架构"}},[t._v("#")]),t._v(" 微服务架构")]),t._v(" "),v("p",[t._v("微服务架构比较麻烦,目前比较好的方式只能是将仓库源码下载下来后,项目代码下图中：")]),t._v(" "),v("p",[v("img",{attrs:{src:"/knife4j/img/knife4j/test-pre2.png",alt:""}})]),t._v(" "),v("p",[t._v("然后进入该目录,在本地执行"),v("code",[t._v("mvn install")]),t._v("命令将knife4j的包在本地安装一份副本")]),t._v(" "),v("p",[t._v("然后在项目"),v("code",[t._v("pom.xml")]),t._v("中修改新版本的版本号进行引入测试。")]),t._v(" "),v("p",[t._v("这是对整个微服务的接口进行测试的情况,如果只是对单个微服务进行测试,可以参考上面Spring Boot的测试流程.")]),t._v(" "),v("comment-comment")],1)}),[],!1,null,null,null);e.default=n.exports}}]);