当前位置:网站首页>opengrok搭建[通俗易懂]
opengrok搭建[通俗易懂]
2022-08-10 19:02:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
前序
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目录下面讲的很清楚了。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130095.html原文链接:https://javaforall.cn
边栏推荐
- QoS Quality of Service Six Router Congestion Management
- QoS服务质量八拥塞避免
- 新建离线同步节点时选择数据去向-表时报错,数据库类型是adb pg,怎么办?
- 云渲染的应用正在扩大,越来越多的行业需要可视化服务
- Site Architecture Detection & Chrome Plugin for Information Gathering
- Win11连接投影仪没反应怎么解决?
- 【初学必备】3d游戏建模入门基础知识
- dumpsys meminfo 详解
- Colocate Join :ClickHouse的一种高性能分布式join查询模型
- redis.exceptions.DataError: Invalid input of type: ‘dict‘. Convert to a byte, string or number first
猜你喜欢
位算符详解 按位与、或、异或、取反、左移、右移
QoS服务质量六路由器拥塞管理
MySQL 查询出重复出现两次以上的数据 - having
工业基础类—利用xBIM提取IFC几何数据
优化是一种习惯●出发点是'站在靠近临界'的地方
Redis persistence mechanism
Common ports and services
[Teach you how to do mini-games] How to lay out the hands of Dou Dizhu?See what the UP master of the 250,000 fan game area has to say
我们用48h,合作创造了一款Web游戏:Dice Crush,参加国际赛事
从 GAN 到 WGAN
随机推荐
redis 事件
你不知道的浏览器页面渲染机制
JVM内存和垃圾回收-11.执行引擎
力扣18-四数之和——双指针法
子域名收集&Google搜索引擎语法
【毕业设计】基于Stm32的智能疫情防控门禁系统 - 单片机 嵌入式 物联网
905. 区间选点(贪心)
Rider调试ASP.NET Core时报thread not gc-safe的解决方法
Three schemes of SQL query across the table
Today's bug, click on the bug that the Windows dynamic wallpaper disappears in the win10 taskbar, and no solution has been found yet.
799. 最长连续不重复(双指针)
flask生成路由的2种方式和反向生成url
Introduction to 3 d games beginners essential 】 【 modeling knowledge
pytorch使用Dataloader加载自己的数据集train_X和train_Y
MSE 治理中心重磅升级-流量治理、数据库治理、同 AZ 优先
皮质-皮质网络的多尺度交流
QoS服务质量六路由器拥塞管理
弘玑Cyclone与风变科技达成战略合作:优势互补聚焦数字化人才培养
『牛客|每日一题』岛屿数量
从 GAN 到 WGAN