Gerrit系统框架介绍
Gerrit目录介绍
转自:https://blog.csdn.net/tanshizhen119/article/details/79889242
先上图
bin/ : 主要是放gerrit.sh启动脚本,以及gerrit.war包
cache/ : 是放缓存文件,gerrit使用的缓存模式是h2数据库,以及guava缓存模块来做的。
data/ : 此目录是插件生成,非gerrit必需目录
db/ : gerrit默认使用的是H2数据库(gerrit是可以支持其他数据库的,例如:mysql, postgres)——默认数据库的名称是reviewdb,数据库存放的路径是可以进行配置的。不过现在gerrit会把一些数据从它的默认数据库移出来,用H2来存放,例如:account_patch_reviews.h2.db, 之前是和2.11版本的时候是和主数据库放在一起的,后面再2.13版本的时候独立出来放到里H2数据库当中。
gerrit支持的数据库:
H2
Apache Derby
PostgreSQL
MySQL
MariaDB
Oracle
SAP MaxDB
DB2
SAP HANA
etc/ : 放置gerrit.config 配置文件,secure.config密码相关配置文件,同时里面还设有发邮件的模板,服务端sshkey等。插件的配置文件也都会放在此目录下。
git/ : 此目录是存放git仓库,这个目录也是可以再gerrit.config进行配置。
index/ : 此目录是放置gerrit索引,gerrit所以是使用lucene。 主要是对评审单,账户信息。(后面慢慢还加入了group组信息,这是要慢慢的提高真个gerrit服务性能的节奏)
lib/ : 放置第三方库的,gerrit启动的时候会加载此目录下的jar包。例如:要把gerrit数据库改成mysql,需要在此目录下放mysql驱动包
logs/ :运行日志
plugins/ : 存放gerrit插件,插件有启动加载的,有实时加载的,这个到如何开发插件的时候再细讲。
static/ : 放一些图片之类的,gerrit是可以自己自定义企业logo的。而且后面如果我们做定制化开发的是,如果有一些静态资源文件,我们需要放在这里。
貌似这样的,不过eclipse这个显示貌似有点问题。
tmp/ : 放各种临时文件。
Gerrit配置介绍
这个没什么好介绍的,因为说明文档说得相当详细,我们之前不是已经搭建好了环境了么。直接点开说明文档看吧。
http://IP:PORT/Documentation/config-gerrit.html
重点提示:
[gerrit]
canonicalWebUrl = http://IP:PORT #要配置成正确的地址与端口,否则访问会有问题。
刚刚看了一下gerrit的配置2.14.5版本又多了好多配置,意味着又多了好多功能。而且现在都已经发展到2.16版本了,太恐怖。这些功能不是重点,我们的重点是要构建工具链,后面会有专题好好深入了解一下。
Gerrit系统框架介绍
这个标题好大,要细讲起来在一遍博文里肯定是讲不完的,这里先将个大概后面会出专题好好讲。
gerrit技术栈
| 技术 | 作用 | 备注 |
|---|---|---|
| GWT |
gerrit前端页面是采用google的gwt框架编写的,主要就是用java来写javascript, 写的java代码最后会编译出js,反正我觉得好恶心搞一个编译环境都好艰难,不过 2.14版本推出了一个新UI,不过感觉还是奇丑无比,GITLAB会比它好看很多。 |
|
| GUICE |
Guice是Google开发的一个轻量级依赖注入的框架,类似SPRING,但是比SPRING 更加轻量一些,出了平常对象依赖注入管理,它本身还提供一个和WEB相关的容 器管理,详情大家可以好好看看相关的教程。gerrit都是在使用GUICE来做依赖注入 |
|
| JGIT |
JGTI是eclipse开源的一个纯得不能再纯java写一个git操作包,gerrit 的git相关操作 都是用此包来完成。 |
|
| LUCENE |
全文检索工具,之前流行的solr和现在炒得热火朝天的es(ElasticSearch)都是基于它, gerrit使用它来存放change(评审单),账户,2.14版本里面又增加一个组信息。 |
|
| ELASTICSEARCH | 是2.14版本新加的,刚出来的不知道性能怎么样。作用同LUCENE一样。 | |
| GUAVA |
谷歌java项目广泛依赖的核心库,里面有集合,缓存,基础工具包等等。一大堆在 gerrit里面表现的淋漓尽致。同时GUAVA被爱程度在github能排前五。 |
|
| SSHD |
apache开源的一个完全使用java库编写的一个关于SSH协议操作的项目。其中有 客户端,服务端,还有SSH agent等等。gerrit使用它来做SSH服务端。建议使用 1.2以上的版本,因为它留了接口支持代理协议,然后社区贡献又贡献了proxy protocol V1版本。现在nginx已经支持TCP转发了,这样使用代理协议就可以获取 到客户端的源IP. |
|
| GITWEB |
gitweb是使用perl脚本语言写的一个web服务端吧,主要是用来浏览代码的。gerrit 这边会起一个servlet来接收gitweb请求,并转发到服务器上部署的gitweb上。 |
|
| 其他 | 剩下的就是一个常规的技术了,如果有遇到个人觉得比较重要的再进行更新。 |
gerrit模块介绍
大概就是上面这样的图,纵观整个gerrit功能也就这样了,不过有些功能确实做得挺好的,查看实现也是挺复杂的。
这篇先这样,下篇再将一下gerrit要如何编译以及gerrit插件开发后面再更深入的了解一下gerrit的源码。
Gerrit系统框架介绍的更多相关文章
- 基于阿里云的JavaEE系统框架介绍
基于阿里云的系统框架展望 1) CDN 用于缓存静态文件等等.七牛和阿里的都还可以. 七牛要做的久一点,各种图片处理的接口要完善一些 阿里的CDN要稍微好一点点,但是没有不安全的访问方式,访问稍微没有 ...
- Android系统框架介绍
src目录:主要是完成java代码的编写 assets目录:资源目录 res目录:存在图片,布局文件和字符串.菜单等文件 bin目录:输出文件夹,如生成的APK文件 project,propertie ...
- Net分布式系统之一:系统整体框架介绍
一.设计目的 从事.Net平台开发系统已有8年多了,一直思考搭建.Net分布式系统架构.基于window平台搭建的大型分布式系统不多,之前了解过myspace.stackoverflow等大型网站.搭 ...
- [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍
[连载]<C#通讯(串口和网络)框架的设计与实现>- 0.前言 目 录 第一章 通讯框架介绍... 2 1.1 通讯的本质... 2 1 ...
- Selenium自动化测试框架介绍
Selenium自动化测试框架介绍 1.测试架构作用 a.可维护性 b.提高编写脚本效率 c.提高脚本的可读性 2.框架的几大要素: Driver管理,脚本,数据,元素对象,LOG,报告,运行机制,失 ...
- Ext.NET 4.1 系统框架的搭建(后台) 附源码
Ext.NET 4.1 系统框架的搭建(后台) 附源码 代码运行环境:.net 4.5 VS2013 (代码可直接编译运行) 预览图: 分析图: 上面系统的构建包括三块区域:North.West和C ...
- Java日志系统框架的设计与实现
推荐一篇好的文章介绍java日志系统框架的设计的文章:http://soft.chinabyte.com/database/438/11321938.shtml 文章内容总结: 日志系统对跟踪调试.程 ...
- 人工智能深度学习Caffe框架介绍,优秀的深度学习架构
人工智能深度学习Caffe框架介绍,优秀的深度学习架构 在深度学习领域,Caffe框架是人们无法绕过的一座山.这不仅是因为它无论在结构.性能上,还是在代码质量上,都称得上一款十分出色的开源框架.更重要 ...
- 挑战EXT——QUI框架介绍与下载
挑战EXT——QUI框架介绍与下载 为庆祝新版QUI问世特写此文: 提起EXTJS的大名,恐怕WEB开发界无人不晓吧.EXTJS框架发展到现在,已经非常成熟和全面了.它的组件库尤其是DataGrid组 ...
随机推荐
- 车牌定位与畸变校正(python3.7,opencv4.0)
一.前言及思路简析 目前车牌识别系统在各小区门口随处可见,识别效果貌似都还可以.查阅资料后,发现整个过程又可以细化为车牌定位.畸变校正.车牌分割和内容识别四部分.本篇随笔主要介绍车牌定位及畸变校正两部 ...
- Polaristech 刘洋:基于 OpenResty/Kong 构建边缘计算平台
2019 年 3 月 23 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·北京站,Polaristech 技术专家刘洋在活动上做了<基于 ...
- PHP 单例模式优点意义及如何实现
一.什么是单例模式? 1.含义 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例.它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用. 2. ...
- iOS----------上传遇到的问题
插叙:之前电脑一直遇到VPN登录不了的问题,试了几台电脑都能正常连接,只有我的电脑不可以,VPN大佬建议我直接重装系统,索性就直接重新装了系统,结果就能连接了.昨天开始上传包的时候,发现用Applic ...
- Windows下docker的安装以及遇到的问题
最近因为业务的需要,需要在本地搭建服务环境测试,不想去安装各种软件,于是就想到了用docker来满足我的需要.由于第一次在Windows下安装(以前一直是在linux下使用,但由于内存等硬件的限制 ...
- windows手动去重 通配符
在下载文件时,如果遇到重复文件,windows的默认做法时 文件名(数字) 这样的方式重命名的. 那么我们在排除重复文件时,可以使用 windows文件浏览器提供的查找功能, 用通配符 ~=& ...
- CSS Sprites(基本写法,怎样使用)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/XTQueen_up/article/details/37601361 说白就是用样式表切一个大图片 ...
- 新DevOps八荣八耻
昀哥 20181001以随时可扩容可缩容可重启可切换机房流量为荣,以不能迁移为耻. 以可配置为荣,以硬编码为耻. 以系统互备为荣,以系统单点为耻. 以交付时有监控报警为荣,以交付裸奔系统为耻. 以无状 ...
- SUSE12SP3-Zookeeper安装
直接使用root账号 1.zookeeper安装 将zookeeper-3.4.13.tar.gz安装包放置指定目录 sudo tar -zxvf zookeeper-3.4.13.tar.gz -C ...
- 一些关于IO流的问题
一:知识点 二:代码 1.阅读下面程序段: BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream(&quo ...