WebRose平台搭建本地开发环境(一键绿色解压版,零配置)
liuian 2024-12-05 14:28 65 浏览
https://gitee.com/shxch1205/webrose(开源地址)
www.webrose.net.cn(官网,有在线Demo与API文档)
如果没耐心看文字介绍,点击此链接看:视频介绍,在工程目录文件/docs/1-开发环境搭建说明.docx也有更详细介绍。
现在软件开发需要的技术栈非常多,所以搭建本地开发环境能把系统跑起来已经成了一个比较复杂的事情,有时甚至成了推广一个开源项目是否顺利的第一道难关,即只有搭建环境足够简单顺利人们才有兴趣继续了解。
所以WebRose在这方面秉持“低代码”极简思想,做了许多创新,可以做到零配置,一键解压绿色版,分分钟就能搭建好跑起来,即想办法把环境搭建做到简单到不能再简单。
具体主要创新点有以下几点:
- 前端是标准原生Web技术部署开发(这也是为了实现PaaS在线编码),不要安装与使用NodeJs、npm、yarn、webpack这一大堆脚手架工具,只要懂点基础Web原理就可以,所以非常简单。
- 直接把JDK、MySQL、Ant、TomCat等需要的第三方软件完整上传到Gitee库中,下载后一解压就能跑,这就省去各种启动命令中路径变量配置工作,因为都预先配置匹配好了。
- 开源项目本身就是一个Idea的标准Java工程,而不是Maven工程,把依赖的第三方ClassPath的Jar包都预先设置在工程目录中,导入Idea后直接编译就能跑,而且编译速度快得多。
- 前后端工程合在一个Gitee库中,开发时只要一个开发工具,每个人可同时编写前后端代码,运行与发布时是前后端分离部署。
- 直接编写Ant脚本编译打包SpringBoo服务Jar包,不用Maven或其他复杂打包工具,既简洁透明,又灵活自由。
如果简单几句话概括环境搭建就是:第一步解压Rar环境工具、第二步启动MySQL、第三步启动Web服务器、第四步在Idea中编译并启动SpringBoot服务类。
然后就全部OK了,中间每一步都不要做任何配置。
下面具体一一详细说明(因为内容讲解了设计初衷,所以有的文字多了一点)。
Gitee克隆下载环境
https://gitee.com/shxch1205/webrose.git
在Idea中直接导入上述地址,或从Gitee网站下载Zip文件解压后导入Idea,两种方式均可,这里不详细说明。
创建本地目录
这是关键第一步,如果创建名为D:\ABCWorkSpace\webrose这样一个两层目录(注意大小写),然后把工程就导入到这个目录下,则就可以不要修改后面任何配置(即零配置)一键解压可运行,原因就是后面的一些命令中的路径变量预设的就是这个路径名。
所以刚开始为了更顺利跑通,建议先在这个默认目录下搭建,等熟悉后再修改配置使用其他任意目录肯定也是没问题的。
一键解压MySQL/JDK/Ant/TomCat等运行环境工具
Gitee下载后整个工程目录结构如下图:
其中RunTimeEnv目录下有几个Rar文件,就是运行环境工具,理论上直接解压后就可以。
但如果直接解压在当前Idea工程文件夹下,会造成Idea建索引文件,因为文件数量太多非常耗时,而且这些文件其实是外部环境工具软件,不属于工程开发用文件,没必要建索引,所以最好的办法就是复制到工程外某个目录进行解压。所以在目录下还特意写了个CopyFile.cmd,把文件复制到D:\ABCWorkSpace\webroseEnvTemp目录,双击此命令即可,命令内容如下:
md D:\ABCWorkSpace\webroseEnvTemp
copy .\*.rar D:\ABCWorkSpace\webroseEnvTemp如果手工创建这个临时目录,然后手工复制,当然也是可以的。
之所以必须叫这个目录名,也是因为后面一些命令参数中的路径也是预设为这个名字的,这样就可以零配置。
拷贝到临时目录后,手工直接解压各个Rar文件至当前文件夹就可以了,不要做任何其他配置,截图如下:
启动MySQL数据库
上一步解压各个Rar后,启动MySQL非常简单,因为这个MySQL已做成绿色解压版,只要直接进入目录MySQL5_1_57双击其中执行命令【★★MyStart-MySQL★★.cmd】即可,启动后界面如下:
MySQL监听端口是5306,用户名是root,密码是111111,并自带了两个Demo演示库webrose_crm,webrose_ehr,不要再安装库。
之所以把整个MySQL做成绿色解压版全部上传Gitee库,而不像有的框架是提供一个.sql文件,然后执行SQL安装到自己的MySQL数据库中,就是为了简化数据库环境这一步,因为根据经验,每个人电脑上的MySQL版本各不一样(字符集也可能不同),用户名密码肯定也不一样,然后肯定要配置数据源等一堆注意事项,经常有各种各样的小问题,所以上传整个库直接解压是最稳定最简单最傻瓜操作的。
之所以选择一个低版本的MySQL是为了减少整个rar文件的大小,这样Gitee上传下载更快,熟悉以后可自行导入自己偏好的某个高版本的MySQL,但其实这个版本的MySQL也是一个经典稳定版本,完全够用好用的。
MySQL这个目录可以再拷贝到其他任意目录,直接双击启动命令就行,因为这是一个绿色解压版的,无需任何配置。
启动Web服务器(TomCat)
前后端分离架构前端要启动一个Web服务器,在生产环境现在一般是Ngnix或Apache这样专业的Web服务器,开发环境就是根据个人偏好自由选择,只要能跑起来就行,我们选择了绿色解压版TomCat,启动方法就是进入TomCat5.5.23目录双击执行命令【MyStart-TomCat.cmd】即可(不要做任何配置),启动后界面如下:
TomCat监听端口是5001,启动后系统访问入口地址是:
http://127.0.0.1:5001/webrose/framework/login.html,用户名/密码:xch/1
注意要同时启动好SpringBoot后端服务,才可以正式登录,否则登录图片加载报错。
之所以选择TomCat,主要就是因为这是个十分老牌的Web/Java服务器,极其稳定可靠,不像有的Web服务器还时不时发生奇怪的缓存刷新等问题,配置也极其简单。
之所以选择一个低版本的TomCat也是为了Rar文件小一点,Gitee上传下载快一些,而且这个低版本够用了,因为我们只拿他当Web服务器用,并不是当Java服务器用。
之所以不要做任何配置就可以成功启动应用,就是因为启动命令与Server.xml中配置的路径正好就是前端强调的预置的目录名。看下截图就明白了:
由截图可以看出,之所以能零配置的前提就是工程目录要使用预设目录,反之,如果想换成其他目录,只要把这些配置的路径改下即可。
启动SpringBoot服务
因为工程不是一个Maven工程,是一个标准Java工程,即把所有ClassPath依赖的jar文件都放在目录\ServiceProject\lib3下了,所以Idea中编译后端Java工程非常简单,不要做任何配置,直接编译Rebuild Project即可。
编译结束后,搜索类cn.net.webrose.bs.WebRoseSpringRun,直接Run即可,即在Idea中成功启动springBoot服务了。
之所以不要做任何配置就可以成功启动,并连接数据库,是因为 MySQL的相关参数与后面数据源配置/appouter_config/webrose.xml中的内容都是预设匹配对上的。截图如下:
也就是说,如果不是预先把整个MySQL做成一键解压版,而是使用自己的某个版本的MySQL,则肯定至少要修改这个数据源配置,就可能各种错误不顺利,无法做到零配置。这也是为什么我们把整个第三方环境都放在Gitee库中,直接下载解压使用的原因,就是减少各种配置,降低出错与不顺利的概率。
至于为什么不用Maven工程而最标准简单的Java工程,其实第一次构建环境肯定还是用Maven的,但构建好后一般ClassPath的jar环境不会经常变动,所以给其他人使用时把Maven依赖的jar包导出,直接放在工程目录中,做成一个Java工程更方便简单得多,一导入无需任何配置就直接编译使用,编译速度也快得多。也可是说是Maven只是第一次用, 只要ClassPath环境不变后面其实没必要每次都用。要理解这个辩证关系,不是说要否定Maven,而是说有时用有时可不用。
Ant编译生产环境SpringBoot服务包
前面讲的是开发工具中环境搭建,最后要发布到生产环境,有个编译打包过程。
先强调一下,虽然在开发环境中,前后端代码的文件都在同一个Idean工程中,但其实运行也是分前后端执行的。
即前端是TomCat反向映射启动D:\ABCWorkSpace\webrose\WebProject这个目录,并没有使用后端文件目录。
而后端是编译所有src,只用到了D:\ABCWorkSpace\webrose\ServiceProject目录下的文件,并没有使用前端目录文件。
即文件合在一个工程中是为了写代码与传Git方便,即一个Git库,一个工程,一个开发工具就够了,可以在一个工具界面中同时写前后端代码。
然后我们甚至把各个产品与各个项目也放在这一个工程中,只要在Ant脚本中设置想编译哪些产品与项目目录就行了。
这是因为许多中小型软件公司与项目,因为人力资源有限,往往无法做到前后端程序员是分开的,即经常是一个程序员前后端代码都要写,甚至是一个人要同时负责多个项目与产品。
如果前端工程搞一个Git库,后端工程是另一个,然后每个产品与项目又是一个Git库,前端开发用VSCode开发工具,后端开发用Idea开发工具,则搭建或切换各产品与项目环境就非常烦琐,需要在不同的开发工具与工程中来回切换。
所以我们为了简化环境搭建,就把前后端代码,各个产品与项目代码都合在一个工程中,总共就一个工程,一个环境,永远不要切换。
当然,有人觉得这样权限没有分开,即每个人都有所有产品与项目代码权限,这不安全。这个道理在一些大公司是存在的,在中小企业与项目有时不是非常关键,如果真有那种问题,则自己重新设置目录也是可以的,只要把Ant编译打包脚本也相应改下就行。
如果只想编译某个产品源码,不想编译所有无关源码,只要临时在本地环境中把无关产品源码设置成普通目录(不是Sources源码目录),这样就不影响编译速度。
开发环境的前后端目录与道理已说明白,下面讲如何发布生产环境。
前端发布:
前端发布非常简单,只要直接复制开发环境目录到生产环境的Web服务器(一般是Ngnix居多)相应目录下即可,这是因为我们是一个原生Web架构,不需要使用WebPack再做二次打包Build,只要复制目录文件即可,也就是说开发环境与生产环境其实是一模一样的,就是标准的原生Web。
这也是因为WebPack二次打包与我们后面想实现PaaS在线开发的效果存在“结构性矛盾”,PaaS在线开发需要实现保存立即运行效果,而不是说还要再编译成另一种格式再上传,所以这才必须创新思路,回归原生Web发布机制。
后端发布:
后端发布则需要编译打包成SpringBoot服务包,即最后只要一个Jar文件直接运行,在这个Jar里面把整个环境的各个Jar都打包在其中。
一般做法就是使用Maven打包,但目录结构需要遵循Maven许多规则(可能把各产品项目前后端目录合在一起就有问题),所以我们选择了直接用Ant脚本打包。其实Maven本质上也是使用Ant执行的(Maven执行提示看得到Ant Task字样),两者是一回事,只不过自己写Ant脚本更自由灵活,可以做更多的工程目录的创新设置。
具体Ant执行方法就是直接双击运行命令\ServiceProject\buildjar\MyAnt.cmd即可。
查看这个Ant命令内容,可以看出这个命令执行的是ServiceProject\buildjar\MyBuilder.xml这个配置文件。
查看MyBuilder.xml配置内容,可以很容易明白其原理(不清楚的可以网上找点Ant资料先学习下),其实就是不断的复制、编译、打包、再复制。。最后再打SpringBoot服务包的过程。这个文件内容如下:
即Ant脚本只用了5~6种最常用的功能命令,就可以自己完全模拟Maven底层的执行过程,自由组合控制输出SpringBoot服务Jar包,一切都是透明的。
最主要的是自定义Ant脚本可以自由发挥,不按Maven规则创新设置工程目录,然后修改脚本按自己的想法打包,甚至可以做一些更大的创新,比如WebRose有个功能可以在中间执行一个程序把所有源代码先加密,然后打到最后Jar的某个目录下,然后在发生异常时点击堆栈链接时可以打开源代码(先解密)界面。要想在打包过程中实现这种自由扩展,使用Maven就不方便,而直接写Ant脚本就灵活自由。
Ant实际执行截图如下:
Ant执行结束后,会在目录D:\ABCWorkSpace\webroseEnvTemp\_SpringBootServiceDeploy下生成最终文件,截图如下;
最后只要把生成的SpringBoot服务Jar文件上传到生产环境(一般是Linux)运行即可。
其实无论是Idea还是Maven编译部署本质上也是使用Ant,以下是运行日志截图可以看出,换句话说就是, 我们这种直接自己写Ant脚本打包方式,其实就是完整实现了Maven的底层过程,技术上更灵活更高更底层了一个维度。
PaaS在线开发
前面讲的所有过程,都是指在本地开发工具中开发,然后最后再部署到生产环境,但现在也在流行PaaS云开发模式,所谓PaaS即将来开发者都是在云上直接配置开发,不需要再发布与部署或重启服务器。
微信小程序其实就相当于一个PaaS开发平台,开发者是在微信提供的一个嵌入式的平台界面中开发,开发者并不清楚也感觉不到背后的操作系统、数据库、缓存服务器、Java服务器是什么,是怎么部署,怎么启动与运行的。
WebRose平台就有这样的在线PaaS功能,即从零开始可以在线建表、建菜单、前后端编码,保存后立即可以运行,不需要上传程序到生产环境发布版本。换句话说就是,前面讲的一堆过程都不要了,系统只要部署一次永远不要再部署与重启服务器了,本地开发工具与环境也不需要了,一切都直接在线开发,开发者不需要学习怎么编译、打包、发布,重启服务器等这些系统层面知识,只专注注应用层面的API即可。下面是工具界面:
PaaS开发肯定是未来的发展趋势之一,尤其适合于那些需要快速响应、快速迭代、不方便频繁发布与重启服务器的中小型软件项目场景。
工程路径修改与配置参数
前面讲的零配置的前提是工程目录必须在目录D:\ABCWorkSpace\webrose下,但如果就是想换目录,需要修改哪些命令配置呢?
MySQL数据库与Idea的Java工程编译都是相对路径,不要修改任何配置项。
需要修改TomCat与Ant的四个文件中的变量。具体如下:
TomCat5.5.23\MyStart-TomCat.cmd,修改其中的JAVA_HOME变量
TomCat5.5.23\conf\server.xml,修改其中的context路径
ServiceProject\buildjar\MyAnt.cmd,修改其中的JAVA_HOME与ANT_HOME
ServiceProject\buildjar\MyBuilder.xml,修改最开始处的三个变量路径Java_Home、FromDir、ToDir
另外后端除了Spring自己的resources配置文件名,还有一个(也只有一个)配置文件appouter_config/webrose.xml,配置数据源就在这里。
前端也只有一个配置文件是WebProject/config.js,在这里设置后端URL。
即整个平台的配置参数非常少,非常简单。
总结
总而言之,WebRose搭建本地开发环境,以及编译发布生产环境,都非常简单并与众不同,真正做到了一下载、一解压、零配置,就能跑起来。
- 上一篇:Jpom-简而轻的项目监控软件
- 下一篇:项目构建工具gradle 初了解
相关推荐
-
- 驱动网卡(怎么从新驱动网卡)
-
网卡一般是指为电脑主机提供有线无线网络功能的适配器。而网卡驱动指的就是电脑连接识别这些网卡型号的桥梁。网卡只有打上了网卡驱动才能正常使用。并不是说所有的网卡一插到电脑上面就能进行数据传输了,他都需要里面芯片组的驱动文件才能支持他进行数据传输...
-
2026-01-30 00:37 liuian
- win10更新助手装系统(微软win10更新助手)
-
1、点击首页“系统升级”的按钮,给出弹框,告诉用户需要上传IMEI码才能使用升级服务。同时给出同意和取消按钮。华为手机助手2、点击同意,则进入到“系统升级”功能华为手机助手华为手机助手3、在检测界面,...
- windows11专业版密钥最新(windows11专业版激活码永久)
-
Windows11专业版的正版密钥,我们是对windows的激活所必备的工具。该密钥我们可以通过微软商城或者通过计算机的硬件供应商去购买获得。获得了windows11专业版的正版密钥后,我...
-
- 手机删过的软件恢复(手机删除过的软件怎么恢复)
-
操作步骤:1、首先,我们需要先打开手机。然后在许多图标中找到带有[文件管理]文本的图标,然后单击“文件管理”进入页面。2、进入页面后,我们将在顶部看到一行文本:手机,最新信息,文档,视频,图片,音乐,收藏,最后是我们正在寻找的[更多],单击...
-
2026-01-29 23:55 liuian
- 一键ghost手动备份系统步骤(一键ghost 备份)
-
步骤1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。 步骤...
- 怎么创建局域网(怎么创建局域网打游戏)
-
1、购买路由器一台。进入路由器把dhcp功能打开 2、购买一台交换机。从路由器lan端口拉出一条网线查到交换机的任意一个端口上。 3、两台以上电脑。从交换机任意端口拉出网线插到电脑上(电脑设置...
- 精灵驱动器官方下载(精灵驱动手机版下载)
-
是的。驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。1、全新驱动精灵2012引擎,大幅提升硬件和驱动辨识能力...
- 一键还原系统步骤(一键还原系统有哪些)
-
1、首先需要下载安装一下Windows一键还原程序,在安装程序窗口中,点击“下一步”,弹出“用户许可协议”窗口,选择“我同意该许可协议的条款”,并点击“下一步”。 2、在弹出的“准备安装”窗口中,可...
- 电脑加速器哪个好(电脑加速器哪款好)
-
我认为pp加速器最好用,飞速土豆太懒,急速酷六根本不工作。pp加速器什么网页都加速,太任劳任怨了!以上是个人观点,具体性能请自己试。ps:我家电脑性能很好。迅游加速盒子是可以加速电脑的。因为有过之...
- 任何u盘都可以做启动盘吗(u盘必须做成启动盘才能装系统吗)
-
是的,需要注意,U盘的大小要在4G以上,最好是8G以上,因为启动盘里面需要装系统,内存小的话,不能用来安装系统。内存卡或者U盘或者移动硬盘都可以用来做启动盘安装系统。普通的U盘就可以,不过最好U盘...
- u盘怎么恢复文件(u盘文件恢复的方法)
-
开360安全卫士,点击上面的“功能大全”。点击文件恢复然后点击“数据”下的“文件恢复”功能。选择驱动接着选择需要恢复的驱动,选择接入的U盘。点击开始扫描选好就点击中间的“开始扫描”,开始扫描U盘数据。...
- 系统虚拟内存太低怎么办(系统虚拟内存占用过高什么原因)
-
1.检查系统虚拟内存使用情况,如果发现有大量的空闲内存,可以尝试释放一些不必要的进程,以释放内存空间。2.如果系统虚拟内存使用率较高,可以尝试增加系统虚拟内存的大小,以便更多的应用程序可以使用更多...
-
- 剪贴板权限设置方法(剪贴板访问权限)
-
1、首先打开iphone手机,触碰并按住单词或图像直到显示选择选项。2、其次,然后选取“拷贝”或“剪贴板”。3、勾选需要的“权限”,最后选择开启,即可完成苹果剪贴板权限设置。仅参考1.打开苹果手机设置按钮,点击【通用】。2.点击【键盘】,再...
-
2026-01-29 21:37 liuian
- 平板系统重装大师(平板重装win系统)
-
如果你的平板开不了机,但可以连接上电脑,那就能好办,楼主下载安装个平板刷机王到你的个人电脑上,然后连接你的平板,平板刷机王会自动识别你的平板,平板刷机王上有你平板的我刷机包,楼主点击下载一个,下载完成...
- 联想官网售后服务网点(联想官网售后服务热线)
-
联想3c服务中心是联想旗下的官方售后,是基于互联网O2O模式开发的全新服务平台。可以为终端用户提供多品牌手机、电脑以及其他3C类产品的维修、保养和保险服务。根据客户需求层次,联想服务针对个人及家庭客户...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
