Skip to content

Latest commit

 

History

History
106 lines (57 loc) · 5.85 KB

Java开发文档.md

File metadata and controls

106 lines (57 loc) · 5.85 KB

Java课程设计——基于Jgit的Git-GUI客户端

班级 学号 姓名
07111707 1320180112 张学楠
07111707 1320180113 郝宏盛

##1. 程序的运行环境和开发步骤 (1)运行环境: 软件在Linux上开发,软件可以在Linux平台下,在JDK-8的Java环境下运行。已经在win10上测试。在开发中已经考虑到跨平台,在编写时内部代码均无与系统底层相关,所以理论上也可以在其他系统上运行,软件使用字体理论上已经实现内置加载,但是考虑到平台的复杂性,不保证所有平台都可以正常运行。软件内部已经加载了默认字体, 如果软件字体显示效果差,请手动安装DejaVuSansMono-Bold字体保证友好的用户界面。 建议分辨率在不低于1366*768的电脑使用,建议使用1080p的屏幕使用。

(2)安装步骤:

  • 在release中下载最新的release jar文件,或者克隆本库。
  • 在target文件夹下找到GitU.jar包, 将程序jar文件复制到计算机上
  • 在资源管理器中双击,运行程序。或用java -jar GitU.jar命令来运行应用,在终端中会有一些相关开发信息。

##2. 程序开发平台

开发环境:JDK8,使用maven组织包 ##3. 程序功能说明:

(1)顶边栏为功能区,按钮就是所有功能.特别说明,三个圆形按钮的功能类似mac中的红绿灯功能:

  • 红色:关闭应用
  • 黄色:最小化
  • 绿色:最大化

(2)最左边的一栏显示的是用户已经打开的库,点击可以切换,中部为commit message的汇总,点击以后可以在最左边栏显示这次commit的文件信息。底边栏为快速信息查看栏目,第一个是当前Branch名字,第二个是最新一次commit的SHA信息。 ##4. 程序算法说明及面向对象实现技术方案

程序中设计了两个模块:

  • 第一个模块resources,是装引用的资源文件:data下的字体资源、icon下的图标文件、style下装主题控件。

  • 第二个模块包含三个包,分别是控制界面操作的controller包,负责业务逻辑的model包,管理库的view包。

(1)值得一提的是由于一个界面只有一个controller,因此controller包里的MainController里有好多类用来管理点击活动。

(2) model包有七个类。CloneProject类的静态函数用来打开本地库和view包下的GitRepoMetaData类交互。为了初始化Git库时让软件系统自动给用户生成一个readme文档,提供首次提交,在InitReadme类实现。StageData类用于实现对象的持久化,具体的,Arragist将之储存为文件,第二次打开时返回相同状态。

(3) view第一个类用来处理Git,返回库中所需信息;第二类用于存储库中所有信息。

##5. 技术亮点、关键点及其解决方案 (1)本程序的亮点:

  • 生成的客户端简约大方使用体验极佳。
  • 有了Jgit,用户可以不用安装Git,就可以管理库,这是有一定便利性。
  • 前后端分离,层次分明。
  • 使用了JFoenix这个开源组件来替代一些JavaFx的原生组件,这个组件可以实现一个Google Material Design的效果,是非常美观的
  • 注重过程,科学的开发方法,迭代维护更新。

(2)本程序的技术关键点

  • 这个软件最底层的是Jgit和JavaFx。

  • 使用maven管理使用到的开源组件。

  • 使用jdk-8开发,因为自带JavaFx,相关组件也很多。

  • 特别感谢jgit-cookbook和GitFx,这两个库中的代码帮助很大

(3)遇到的技术难点及对应的解决方案:

  • 由于代码里的stagestyle里的undecorated为了界面好看牺牲了使用系统自带的标题栏等等组件,制作了一个类似mac的前端,好处是没有系统标题栏提供的元素。因此在不同平台的软件界面样式一样。然而缺点是软件最小化等涉及到窗口调整需要自己实现,会在以后的版本中修复。 (4)未来展望

  • 现在整个客户端的界面只有一个默认的亮色主题(light),今后会开发出暗色模式(dark)来满足用户的不同喜好,优化他们的使用体验。

  • 软件仍然处于开发状态,理想情况下还会继续维护,这是一个最早的版本,能够完成基础的git操作,代码将以MII协议释出。希望未来能够覆盖到所有的操作。

##6. 简要开发过程

11月15号 查找资料确定要做的几个思路,进行可行性分析。原本的构思是一个基于DL4J的类keras框架,可是后来发现Java在这方面实在是不行,文档简陋,难以继续,又想开发一个markdown的Java版本的编辑器,但是发现解析器很多都是基于ruby,js等等语言,几乎没有Java的相关的现成的解释器,有的也文档不全,自己写一个解释器的话目测很麻烦,自己也不喜欢文本编辑相关的工作,所以选择了这个项目,一个基于Jgit的一个Java的简单的Git-GUI客户端,能够实现基本的功能,基于eclipse基金会的开源项目Jgit,相对来说文档相对健全,相关文档和教程非常少,中文更少,但是我还是写了一点东西出来。

11月21号 通过大量查找资料学习并完成整个系统的架构。

11月24号 进行界面的设计,并生成相关文件。

11月29号 后端数据库管理功能开发完成,进入测试阶段。

12月6号 对软件在不同的操作系统电脑上进行测试。

12月11号 程序开发工作完毕,编写及整理文档。

##6. 尾

欢迎访问我的技术博客tech.viewv.top获取相关具体文档信息