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系统框架介绍的更多相关文章

  1. 基于阿里云的JavaEE系统框架介绍

    基于阿里云的系统框架展望 1) CDN 用于缓存静态文件等等.七牛和阿里的都还可以. 七牛要做的久一点,各种图片处理的接口要完善一些 阿里的CDN要稍微好一点点,但是没有不安全的访问方式,访问稍微没有 ...

  2. Android系统框架介绍

    src目录:主要是完成java代码的编写 assets目录:资源目录 res目录:存在图片,布局文件和字符串.菜单等文件 bin目录:输出文件夹,如生成的APK文件 project,propertie ...

  3. Net分布式系统之一:系统整体框架介绍

    一.设计目的 从事.Net平台开发系统已有8年多了,一直思考搭建.Net分布式系统架构.基于window平台搭建的大型分布式系统不多,之前了解过myspace.stackoverflow等大型网站.搭 ...

  4. [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍

    [连载]<C#通讯(串口和网络)框架的设计与实现>- 0.前言 目       录 第一章           通讯框架介绍... 2 1.1           通讯的本质... 2 1 ...

  5. Selenium自动化测试框架介绍

    Selenium自动化测试框架介绍 1.测试架构作用 a.可维护性 b.提高编写脚本效率 c.提高脚本的可读性 2.框架的几大要素: Driver管理,脚本,数据,元素对象,LOG,报告,运行机制,失 ...

  6. Ext.NET 4.1 系统框架的搭建(后台) 附源码

    Ext.NET 4.1 系统框架的搭建(后台) 附源码 代码运行环境:.net 4.5  VS2013 (代码可直接编译运行) 预览图: 分析图: 上面系统的构建包括三块区域:North.West和C ...

  7. Java日志系统框架的设计与实现

    推荐一篇好的文章介绍java日志系统框架的设计的文章:http://soft.chinabyte.com/database/438/11321938.shtml 文章内容总结: 日志系统对跟踪调试.程 ...

  8. 人工智能深度学习Caffe框架介绍,优秀的深度学习架构

    人工智能深度学习Caffe框架介绍,优秀的深度学习架构 在深度学习领域,Caffe框架是人们无法绕过的一座山.这不仅是因为它无论在结构.性能上,还是在代码质量上,都称得上一款十分出色的开源框架.更重要 ...

  9. 挑战EXT——QUI框架介绍与下载

    挑战EXT——QUI框架介绍与下载 为庆祝新版QUI问世特写此文: 提起EXTJS的大名,恐怕WEB开发界无人不晓吧.EXTJS框架发展到现在,已经非常成熟和全面了.它的组件库尤其是DataGrid组 ...

随机推荐

  1. Django admin自定制功能

    一:基础设置 1.应用注册 1)方式一 若要把app应用显示在后台管理中,需要在admin.py中注册.打开admin.py文件,如下代码: from django.contrib import ad ...

  2. http/2.0时代已经来临了!

    知识分享  文章转自:https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/78906348 现在是资源共享的时代,同样也是知识分享的时代,如 ...

  3. 并发系列(7)之 ScheduledThreadPoolExecutor 详解

    文本将主要讲述 ThreadPoolExecutor 一个特殊的子类 ScheduledThreadPoolExecutor,主要用于执行周期性任务:所以在看本文之前最好先了解一下 ThreadPoo ...

  4. 图解 sql 事务隔离级别

    sql 事务隔离级别有四种分种为: 一 Read Uncpommitted(未提交读) 二 Read Committed(提交读) 三 Repeated Read(可重复读) 四 Serializab ...

  5. 去除inline-block元素间的间距

    一.现象描述 真正意义上的inline-block水平呈现的元素间,换行显示或者空格隔开的情况下会有间距,这是因为浏览器在解析时,会将换行等读取成一个空格导致. 二.移出空格的方法 ① 我们可以去掉元 ...

  6. 纯css折叠区域-基于checkbox

    Accordion Accordion即可折叠区域,和<details>标签类似,不过更灵活些.折叠区域往常多用JavaScript实现,这里就纯粹用CSS,就想法上也是异途同归. 折叠区 ...

  7. HTML 练习js代码位置在head标签

    方式一: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  8. Install Windows 2016 on VirtualBox

    Download ISO file for Windows 2016 (180 days free).  https://www.microsoft.com/en-us/evalcenter/eval ...

  9. Windows Server 2016-活动目录NTP时间同步

    在实际生产域环境下,往往会有很多跟时间不同步相关的问题,简单的说几种常见的情景:本地客户端时间与域控时间不统一导致无法加域:每次客户端电脑输入密码到进入桌面环境等N久:Skype for Busine ...

  10. web server性能优化浅谈

    作者:ZhiYan,Jack47 转载请保留作者和原文出处 Update: 2018.8.8 在无锁小节增加了一些内容 性能优化,优化的东西一定得在主路径上,结合测量的结果去优化.不然即使性能再好,逻 ...