opengrok搭建
前序
OpenGrok是一个快速,便于使用的源码搜索引擎与对照引擎,它能够帮助我们快速的搜索、定位、对照代码树。一般常用于大型的项目中,比如Android系统源码。
我也是刚来公司后才发现有这个东西的,在此自己也搭建一套,方便在家里也可以查看源码。因为是查看自己定制的系统源码所以要搭这个,如果只是查看AOSP的官方源码推荐一个网站:http://androidxref.com/
环境
OS:Debian 8/Ubuntu 14.04及以上
Web Server:tomcat8
JDK:openjdk-8
opengrok:0.12.1.6 (stable)
安装tomcat8
在这里为了简单化,直接使用系统内仓库进行安装了。
$ sudo apt-get install tomcat8
安装 openjdk-8
$ sudo apt-get install openjdk-8-jdk
安装opengrok
这个需要从github下载了。
在这里可以找到所有releases的版本
https://github.com/OpenGrok/OpenGrok/releases
我们使用最新的稳定版:0.12.1.6 (stable)
最好找一个分区空间较大的地方安装
$ wget https://github.com/OpenGrok/OpenGrok/files/467358/opengrok-0.12.1.6.tar.gz.zip可能是为了减小体积吧,压缩了2次,所以我们也需要解压2次
$ unzip opengrok-0.12.1.6.tar.gz.zip
$ tar zxvf opengrok-0.12.1.6.tar.gz
配置opengrok
在oepngrok的安装目录中,也就是我们刚刚解压后的目录,新建src和data目录。
src目录用于存放源码的链接
data目录用于存放生成的索引文件。
创建源码链接
因为可能在下载opengrok之前就已经下好了android源码, 由于源码太大,复制和移动都不现实,所以我们可以使用软链接的方式。当然也可以在索引的时候指定源码路径,不过那样不便于管理,我不喜欢那样。以下是我的源码路径,可以根据自己的来进行修改。
$ ln -s /home/lu/Android-src/AOSP-6.0 ~/data/opengrok-0.12.1.6/src/AOSP-6.0
$ ln -s /home/lu/Android-src/cm13 ~/data/opengrok-0.12.1.6/src/cm13
配置tomcat8
opengrok 0.12.1.6版本默认是只识别tomcat6和7的,所以我们需要修改一下配置文件使其搜索tomcat8,当然了也可以直接安装tomcat7,不过在这里我使用的是tomcat8,所以必须要修改配置了。
编辑opengrok安装目录中的bin/OpenGrok
文件:
$ vim ~/data/opengrok-0.12.1.6/bin/OpenGrok
找到/var/lib/tomcat7/webapps和/var/lib/tomcat7
将tomcat7改为tomcat8即可。更简单的方式是直接使用sed命令批量改就行了
$ sed -i 's/tomcat7/tomcat8/g' ~/data/opengrok-0.12.1.6/bin/OpenGrok
配置opengrok实例路径
默认opengrok实例路径是/var/opengrok
当第一次进行索引的时候会在改目录中生成配置文件和log文件。默认源码目录src和data索引文件也是要放置在这里的。为了方便起见我们也可以将其改为opengrok的安装目录下面。
编辑opengrok安装目录中的bin/OpenGrok
文件:
$ vim ~/data/opengrok-0.12.1.6/bin/OpenGrok找到如下内容
OPENGROK_INSTANCE_BASE="${OPENGROK_INSTANCE_BASE:-/var/opengrok}"
将其改为
OPENGROK_INSTANCE_BASE="${OPENGROK_INSTANCE_BASE:-/home/lu/data/opengrok-0.12.1.6}"
即可
索引项目
opengrok已经配置完了。要对项目进行索引,我们还需要一个工具Exuberant Ctags。
安装Exuberant Ctags
$ sudo apt-get install exuberant-ctags
开始索引
进入opengrok的安装目录,执行以下命令即可开始索引:
$ bin/OpenGrok index
它会自动去找安装目录下面src目录中的项目源码,并且将其索引记录到data目录中。
索引过程中我们可以通过安装目录中的log/opengrok0.0.log
查看当前进度。
部署
索引完成后,我们就可以部署到tomcat8中,然后在web页面进行查看了。
执行以下命令开始部署,注意由于我们是通过apt-get
安装的tomcat8,所以系统会自动创建tomcat8用户和组的。而我们如果是其他用户的话需要加sudo 权限。
$ sudo bin/OpenGrok deploy
还有记得启动tomcat哦,我的是debian 8所以可以用systemd来启动。
$ sudo systemctl start tomcat8
如果是ubuntu 14.04的话,可能还没有systemd,可以使用以下命令启动。
$ sudo service tomcat8 start
搜索项目
部署成功后,我们就可以通过浏览器访问了。
http://server-ip:8080/source/
出现以下界面就表示已经成功。
最后如果在公司源码经常改动的话,可以通过crontab定时
repo sync
然后也定时~/data/opengrok-0.12.1.6/bin/OpenGrok update
更新一下索引即可。
总结
刚开始的时候从网上也找了一些资料,有很多太笼统了,有的又残缺不全。最后只能去看官方文档了,发现还是文档比较靠谱点。要养成看文档的习惯啊。在安装包中的doc目录下面讲的很清楚了。
opengrok搭建相关推荐
- OpenGrok搭建方法
OpenGrok简介 OpenGrok为一个方便快速的源码搜索及交叉引用查询引擎.它以Java编写,可用于源码搜索.交叉引用查询.以及源码树定位.它支持多种编码语言和多种代码版本控制引擎系统.Open ...
- opengrok搭建快餐教程2020
opengrok搭建快餐教程2020 安装tomcat 看这个中文版教程的大概在国内,大家下载就找个镜像会快一些,比如清华的镜像: https://mirrors.tuna.tsinghua.edu. ...
- android源码opengrok,搭建OpenGrok 快速索引android源码
openggrok可以快速浏览源码,查找相关文件及函数等. 代码再服务器,本地使用opengrok搜索. 搭建环境等都在服务器进行. 注意:一下配置均在服务器进行,打开网址均在本地进行. 代码再云上, ...
- Ubuntu下的源码浏览器Opengrok搭建 并集成LDAP认证登陆
-前言 很多做android开发的小伙伴都知道,快速检索代码的利器opengrok,检索代码非常方便,本人之前多次搭建opengrok,只不过最近迫于代码安全性考虑,终于搞定opengrok+tomc ...
- Opengrok本地搭建(Windows10)
Opengrok本地搭建(Windows10) 下载解压OpenGrok 下载解压Tomcat(8.x及以上版本),添加环境变量:TOMCAT_HOME=D:\Program Files\apache ...
- Go 函数式编程实战
Go 函数式编程实战-目录 序 致谢 前言 关于本书 关于作者 函数式编程简介 1.1 函数概述 1.2 什么是函数式编程 1.3 函数式编程特性 1.3.1 函数是一等公民 1.3.2 纯函数 1. ...
- Windows10搭建opengrok服务器
目录 一.JAVA安装与环境配置 1. jdk下载与安装 2.环境变量配置 3.检查java是否安装成功 二.ctags安装 三.opengrok安装与配置 1.安装 2.配置: 四.tomcat安装 ...
- Ubuntu16.04搭建OpenGrok环境
搭建的目标平台系统版本: Ubuntu 16.04.2 LTS . 本方法对其它ubuntu版本同样适用. 准备以下Tools: apache-tomcat-9.0.8(https://tomcat ...
- Linux上OpenGrok的搭建过程
OpenGrok(官网)是一个开源的源代码搜索引擎,免费.高效.功能强大,与sourceinsight相比毫不逊色.具体优点网上介绍的很多了,请自行搜索. 下面是我在自己CentOS7.3服务器上搭建 ...
最新文章
- python查找字符串出现次数_Python 中找出字符串中出现频率最高的字母
- OpenCV查找轮廓
- 我的世界java版背景图更换_《我的世界手机版》如何修改界面背景 界面背景修改攻略图文教程...
- 产生0到1之间均匀分布的一个随机数原理与实现
- java生成excel_java生成excel并下载功能
- Octave(open source版的matlab)介绍Octave online的使用
- shanghai international trade center
- 大数据揭示90后爱情观,“有钱”只能排最后
- 适合iOS的15大网站推荐
- 禁忌搜索算法原理步骤、matlab实现算例及相关代码
- vsr matlab仿真,电压型PWM整流器(VSR)及控制系统的matlab仿真..docx
- 特斯拉灯光秀指南「GitHub 热点速览 v.22.01」
- layui 模板引擎使用
- detectron中的blobs
- java导出word纸张方向_java导出word的几种方式
- 买天猫店网店转让商标过户事项
- 位运算——左移和右移
- cognos 是什么?
- USB摄像头预览识别二维码
- Observability:Influx
热门文章
- 华硕灵耀14和x14区别
- 关于仓库库区以及库位的思考
- 增广拉格朗日乘子法(Augmented Lagrange Method)
- O2OA 7.2.0新版本直播预告!快来了解一下吧!
- 数据处理(一):点到直线距离
- 爬虫实践---抓取百度贴吧
- GP232RL替代FT232RL国产USB转串口/UART芯片
- 016_jie_chu_b_zhan_qu_yu_xian_zhi
- android ratingbar 高度,Android RatingBar终极解决方案,大小、颜色、间距、样式随便定义...
- 5G NR Band ARFCN频点换算