工具使用-Mac上搭建OpenGrok查看Android源码

一、OpenGrok简介

OpenGrok是一个快速,便于使用的源码搜索引擎与对照引擎,它能够帮助我们快速的搜索、定位、对照代码树。一般常用于大型的项目中,比如Android系统源码。我们可以尝试在自己的电脑上搭建opengrok,在家里搜索代码将更加方便。
OpenGrok在github上的位置
https://github.com/OpenGrok
下面介绍mac os上如何搭建OpenGrok来查看本地Android源码。

二、OpenGrok安装

OpenGrok下载 https://github.com/OpenGrok/OpenGrok/releases
我下了最新的OpenGrok版本1.1-rc3,官网指出安装的环境要求:
1. 最新的java 1.8
2. 需要运行servlet容器如GlassFish或者Tomcat(8.x及以上)
3. 需要安装了Exuberant Ctags

1. JDK安装

可以参考网上详细的mac安装配置JDK教程,这里注意要下载java1.8以上版本。看到我的机器JDK版本是满足的:
这里写图片描述

2. Tomcat安装

从这里下载Tomcat的zip包 http://tomcat.apache.org/将下载的zip包解压至/usr/local/下。当然可以使用homebrew下载

brew install tomcat

使用homebrew下载将安装在/usr/local/Cellar/tomcat/目录下。
这里我在Tomcat官网上下载了最新的版本apache-tomcat-9.0.0.M21,并将下载的zip解压至/usr/local/下
这里写图片描述

为了方便使用,将tomcat的bin目录加至PATH中,在~/.bash_profile文件最后中添加如下一行

#add for tomcat 2017-5-14 by XXX
export PATH=$PATH:/usr/local/apache-tomcat-9.0.0.M21/bin

添加完记得source以下

source ~/.bash_profile

给tomcat下bin中的脚本家上可执行权限

chmod +x /usr/local/apache-tomcat-9.0.0.M21/bin/*.sh

在终端输入startup.sh或者usr/local/apache-tomcat-9.0.0.M21/bin/startup.sh,即可启动tomcat。
这里写图片描述

这时打开浏览器,地址栏输入localhost:8080,能看到tomcat的界面说明tomcat已经安装配置成功了。
这里写图片描述

3. Ctags安装

可以在Ctags下载官网上下载包安装,安装方法如下:

cd ~/Downloads;
tar -zxvf ctags-5.8.tar;
cd ctags-5.8;
./configure && make && sudo make install;

也同样可以使用Homebrew安装:

brew install ctags

使用Homebrew安装的路径在/usr/local/Cellar/ctags下。
安装ctags成功:
这里写图片描述

4. OpenGrok安装

从官网上下载最新的opengrok 压缩包 opengrok-1.1-rc3.tar.gz
将下载的opengrok压缩包解压至/usr/local/

部署web应用程序到本地服务器:

$cd /usr/local/opengrok-1.1-rc3/bin
$ ./OpenGrok deploy

如果没有发现安装的服务器就使用如下参数设置服务器的环境变量:

$cd /usr/local/opengrok-1.1-rc3/bin
$OPENGROK_TOMCAT_BASE=/usr/local/apache-tomcat-9.0.0.M21/ ./OpenGrok deploy

如上操作后在浏览器里输入 http://localhost:8080/source/,看到OpenGrok的界面:
这里写图片描述

报错信息正式我们没有配置服务器里的web.xml的CONFIGURATION,网上有说这样的报错需要给所有用户代码索引的读写权限,我在mac上设置了依然会出现这样的错误。
下一步我们进行代码索引配置。

三、 OpenGrok配置

1. 索引本地源码

如果代码的SRC_ROOT已经在var/opengrok/src下准备好了就执行:

$cd /usr/local/opengrok-1.1-rc3/bin
$ ./OpenGrok index

如果要更换其他source目录则:

$ ./OpenGrok index <absolute_path_to_your_SRC_ROOT>

我的源码目录索引:

$ ./OpenGrok index /Volumes/android/aosp

由于android源码很大,这样需要索引很久,至少我等了2个多小时还没结束,心急的我中断了索引,想先索引个小点的源码路径试试是否能成功,试着索引aosp/frameworks/base/services/ 目录。先删掉 /var/opengrok/下的目录和文件,再索引时却有无法获取opengrok.jar等报错。

./OpenGrok index /Volumes/android/aosp/frameworks/base/services/

于是重新部署webapp,再索引

$cd /usr/local/opengrok-1.1-rc3/bin
$OPENGROK_TOMCAT_BASE=/usr/local/apache-tomcat-9.0.0.M21/ ./OpenGrok deploy
$sudo ./OpenGrok index /Volumes/android/aosp/frameworks/base/services/

由于代码很少,很快就索引完结果成功了,刷新opengrok主页:
这里写图片描述

搜索试下:
这里写图片描述

Tips:关于index时间,我的机器是双核 i5cpu,2.8GHz,只index frameworks,花了3个半小时,==;同事买的二手服务器32核 2.6GHz,index全部android源码花了3个多小时,index kernel的时候会特别慢。

2. 本地源码更新

如果代码有更新或有新项目的话,就重新生成下index即可:

sudo /usr/local/opengrok-0.12.1/OpenGrok index <absolute_path_to_your_SRC_ROOT>

如果是经常需要更新的话,可以使用定时任务进行更新。

注意不要使用符号链接到/var/opengrok/src 而要使用以上命令参数建立索引。

四、总结

当然Windows和ubuntu上也可以搭建opengrok
windows:http://blog.csdn.net/finewind/article/details/47362525
ubunutu:http://www.linuxidc.com/Linux/2016-11/136960.htm
大体上都差不多,日后需要时或者有什么使用心得再更新此篇博客。

参考博客:
1. 使用OpenGrok搭建 可搜索可跳转的源码 阅读网站 :http://www.jianshu.com/p/2f4d0aeb1460
2. OpenGrok安装配置 - MAC篇 :https://yq.aliyun.com/articles/64311
3. How to install OpenGrok:https://github.com/OpenGrok/OpenGrok/wiki/How-to-install-OpenGrok

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值