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. 【转】超酷的 mip-infinitescroll 无限滚动(无限下拉)

    写在前面 无限滚动技术(又叫做无限下拉技术)被广泛应用于新闻类,图片预览类网站.对用户来讲,使用无限滚动的页面有源源不断的信息可以预览,增加用户在页面的停留时长.技术上原理也很简单,在页面加载时加载一 ...

  2. 『取巧』VS2015试用期过后 继续试用

    背景: 个人电脑 安装的 VS2015 Community 社区版. 一直用得挺好,都忘了要登录. 直到近来,30天试用期过 —— VS弹窗:要登录用户名.密码 才能继续使用. 但是,输入了无数次 邮 ...

  3. 安全性测试入门:DVWA系列研究(一):Brute Force暴力破解攻击和防御

    写在篇头: 随着国内的互联网产业日臻成熟,软件质量的要求越来越高,对测试团队和测试工程师提出了种种新的挑战. 传统的行业现象是90%的测试工程师被堆积在基本的功能.系统.黑盒测试,但是随着软件测试整体 ...

  4. 《阿里巴巴 Java开发手册》读后感

    前言 只有光头才能变强 前一阵子一直在学Redis,结果在黄金段位被虐了,暂时升不了段位了,每天都拿不到首胜(好烦). 趁着学校校运会,合理地给自己放了一个小长假,然后就回家了.回到家才发现当时618 ...

  5. Spring学习(一):理解IoC容器

    序言 记得刚毕业那会儿,出来招工作被问到Spring的核心时,都觉得简单的一笔,直接说不就是IoC(控制反转)和DI(依赖注入)么,然后省略一万字对两个名词的解释.最近空来整理了一下Spring中Io ...

  6. Java 处理PDF图章(印章)——图片图章、动态图章

    图章(印章)是一种在合同.票据.公文等文件中表明法律效应.部门机关权威的重要指示物,常见于各种格式的文件.文档中.对于纸质文档可以手动盖章,但对于电子文档,则需要通过特定的方法来实现.本篇文档分享通过 ...

  7. 微服务容错限流Hystrix入门

    为什么需要容错限流 复杂分布式系统通常有很多依赖,如果一个应用不能对来自依赖 故障进行隔离,那么应用本身就处在被拖垮的风险中.在一个高流量的网站中,某个单一后端一旦发生延迟,将会在数秒内导致 所有应用 ...

  8. laravel中如何利用反射实现依赖注入

    依赖注入 在一个类中经常会依赖于其他的对象,先看一下经典的写法 class Foo { public $bar; public function __construct() { $this->b ...

  9. JDBC mysql 相关内容笔记

    解决乱码: url字符串加上?useUnicode=true&characterEncoding=utf-8; mysql数据库无法插入中文数据问题:将mysql数据库的编码改为utf-8; ...

  10. odoo:免费开源ERP入门与实践

    Odoo下载安装 Odoo社区版下载链接:http://nightly.odoo.com/ ,下载11.0社区版Windows安装包:http://nightly.odoo.com/11.0/nigh ...