当前位置:网站首页>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
边栏推荐
- DefaultSelectStrategy NIOEventLoop执行策略
- 多种深度模型实现手写字母MNIST的识别(CNN,RNN,DNN,逻辑回归,CRNN,LSTM/Bi-LSTM,GRU/Bi-GRU)
- Keras deep learning combat (17) - image segmentation using U-Net architecture
- Metasploit——渗透攻击模块(Exploit)
- “2022零信任神兽方阵”启动调研,欢迎各单位填报信息
- 力扣150-逆波兰表达式求值——栈实现
- 云渲染的应用正在扩大,越来越多的行业需要可视化服务
- JVM内存和垃圾回收-11.执行引擎
- 陕西CAS:1244028-50-9_Biotin-PEG3-SCO-PPh3 固体
- 皮质-皮质网络的多尺度交流
猜你喜欢
随机推荐
常见端口及服务
小分子PEG CAS:1352814-07-3生物素-PEG6-丙酸叔丁酯
CAS:190598-55-1_Biotin sulfo-N-hydroxysuccinimide ester生物素化试
PG中的Index-Only Scans解密
QoS Quality of Service Seven Switch Congestion Management
幕维三维动画——港珠澳大桥沉管安装三维动画实况
【luogu CF1534F2】Falling Sand (Hard Version)(性质)(dfs)(线段树 / 单调队列 / 贪心)
第14章_MySQL事务日志
Unity_Stack<T>()的应用(多个次级界面后的返回逻辑)
宝塔部署flask项目
FPGA:生成固化文件(将代码固化到板子上面)
我们用48h,合作创造了一款Web游戏:Dice Crush,参加国际赛事
大家要的Biotin-PEG3-Br/acid/NHS ester/alcohol/amine合集分享
魔方电池如何“躺赢”?解锁荣威iMAX8 EV“头等舱”安全密码
优化是一种习惯●出发点是'站在靠近临界'的地方
罗克韦尔Rockwell Automation EDI 项目
DefaultSelectStrategy NIOEventLoop执行策略
Introduction to 3 d games beginners essential 】 【 modeling knowledge
FPGA工程师面试试题集锦91~100
力扣150-逆波兰表达式求值——栈实现