StarUML源码解读|修改代码|亲自编译

662 阅读3分钟

「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战

概述

最近为选择合适的,轻量级的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如下 image.png 选中图标-->右键-->通过菜单选择显示包内容; image.png 然后进入Contents-->Resource目录,找到一下文件 image.png 复制app.asar文件,到任意工作目录,将对其进行解压和修改

2. 对资源包进行解压

我将文件复制到了一个临时目录,然后进入目录执行以下命令,进行资源解压

// 通过asar命令将app.asar文件解压到当前目录下的app目录
asar extract app.asar app

执行完毕后如下 image.png 解压后目录 image.png

3. 修改对应的限制代码

**重点来了:**用开发工具或者编辑文本的工具打开都行,这里我以Visual Studio工具为例:得到如下效果,主要修改图中两个标注的文件:

image.png 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)
    })

image.png

4. 打包并覆盖

回到APP目录,执行打包
asar pack app app.asar
将新生成的app.asar文件复制并放到安装目录,替换掉原来的文件,然后再重启StarUML工具

5. 验证

重启后,进入Help菜单,尝试输入激活密匙

image.png 会弹出如下提示

image.png

如上就说明已经成功了 (说明:其实就算在Help菜单,执行删除License操作,最后都会是已经激活状态,都会是刚刚上面的效果)


最后,如果觉得以上操作太麻烦,也可以直接下载一下资源包,是已经修改后并打包的,直接覆盖安装目录下的app.asar文件即可 下载链接