二次开发 - Observe-secretly/HbaseGUI GitHub Wiki

说明

当软件不满足你的诉求或者您想要做二次开发时,这里将会告诉你如何编译和调试它

步骤

1、环境准备

  • JDK1.8
  • IDE:Eclipse/Idea
  • 你必须会使用Maven
  • 次要:你要提供一个可以正常连接使用的Hbase
  • 次要:如果你要对GUI进行修改,你需要对Swing编程有一定基础

2、你需要下载并按顺序编译以下三个项目

之所以需要按顺序编译他们的原因是因为,它们之间是存在依赖关系的,但是这种关系不是通过Maven父子工程的方式去完成的。考虑到需要实现多版本(Hbase版本)的问题,作者必须通过单独编译并mvn clean install的方式把这些依赖安装到你的本地仓库。

3、如何修改适配器,并且调试

当你想要对GUI进行功能升级,并且这些功能在适配器中没有提供的时候。你首先要通过修改Hbase-adapter-interface来定义操作规范(别忘记把它安装到你的本地仓库),然后修改Hbase-adapter来实现这些功能;最后通过修改HbaseGUI主程序来提供用户可见的服务; 一切还没有结束,如果你有查看作者的源码,你会发现GUI是通过网络动态加载不同版本的Hbase-adapter,这些网络配置你可以在HbaseGUI/hbase-gui/conf/remote-driver.properties文件中找到它们。当你把这些配置都修改正确后,恭喜你,你现在可以执行com.lm.hbase.swing.HbaseGui.java中的Main方法在IDE中启动它并调试它了;

4、GUI是如何动态加载驱动并管理他们的

动态加载驱动

通过remote-driver.properties中定义的版本号,程序会在运行时在 https://mvnrepository.com 中查找并下载相关的jar包和依赖。感兴趣的小伙伴可以了解下maven-invoker

驱动管理

作者无意中在网上发现一个非常棒的包管理器org.xeustechnologies/jcl-core。它可以帮助你在程序运行时,动态加载一部分jar。并且提供非常便捷的方式去访问和管理它们。这样你就不用费劲去自定义Classloader加载和管理它们了。