最近为选择合适的,轻量级的UML工具而伤神;试用了很多工具,最轻量简洁的要数StarUML了。此处主要介绍对其StarUML工具的科学安装之法(适合开发);这里仅作为技术交流体验,不建议大家用于商业用途,有条件还是支持正版。
说明
我安装的是StarUML3.2.2版本;这里主要介绍如何修改其源码来达到科学安装的目的;
工具技术栈分析
StarUML采用的技术框架,从表现上来看,应该是基于H5的Electron框架开发而成的;因此也就是说会JavaScript或ES6应该就没问题(当然不会也没关系,跟着本文的科学安装步䠫操作也是可以的)
思路:
- 首先是禁用其软件的License校验,理论上是找到源码中的License对应代码规则
- 禁用掉系统自动升级监测和提醒的通知
准备工作
1.安装StarUML软件
直接去官网下载并安装StarUML工具,最好是与我版本一致(你想尝试新版本除外);这里就不赘述了…
2. 安装本地打包工具
在执行之前,需要有一些准备工作,因为是用到前端技术,和Electron所以需要我们在机器上线安装Node环境,Electron的打包工具。
// 安装npm
brew install node
//安装打包工具
npm install asar -g
执行步䠫
1. 找到需要安装的资源包/路径
在应用程序找到对应的安装程序,笔者是以Mac为例,Windows也差不多(window默认路径:C:\Program Files\StarUML\resources),Mac如下
选中图标–>右键–>通过菜单选择显示包内容;
然后进入Contents–>Resource目录,找到一下文件
复制app.asar文件,到任意工作目录,将对其进行解压和修改
2. 对资源包进行解压
我将文件复制到了一个临时目录,然后进入目录执行以下命令,进行资源解压
// 通过asar命令将app.asar文件解压到当前目录下的app目录
asar extract app.asar app
执行完毕后如下
解压后目录
3. 修改对应的限制代码
**重点来了:**用开发工具或者编辑文本的工具打开都行,这里我以Visual Studio工具为例:得到如下效果,主要修改图中两个标注的文件:
1)修改1License检查:src/engine/license-manager.js
checkLicenseValidity () {
this.validate().then(() => {
setStatus(this, true)
}, () => {
// setStatus(this, false)
// UnregisteredDialog.showDialog()
// 规避:注释掉检查License的机制和弹出框
setStatus(this, true)
//UnregisteredDialog.showDialog()
})
}
2)修改2自动更新:src/application.js
this.on('application:check-for-updates', (arg) => {
// autoUpdater.checkForUpdatesAndNotify()
})
this.on('application:install-and-restart', (arg) => {
// autoUpdater.quitAndInstall(false, true)
})
4. 打包并覆盖
回到APP目录,执行打包
asar pack app app.asar
将新生成的app.asar文件复制并放到安装目录,替换掉原来的文件,然后再重启StarUML工具
5. 验证
重启后,进入Help菜单,尝试输入激活密匙
会弹出如下提示
如上就说明已经成功了
(说明:其实就算在Help菜单,执行删除License操作,最后都会是已经激活状态,都会是刚刚上面的效果)
最后,如果觉得以上操作太麻烦,也可以直接下载一下资源包,是已经修改后并打包的,直接覆盖安装目录下的app.asar文件即可
下载链接