概述
一、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
最后
以上就是微笑电源为你收集整理的工具使用-Mac上搭建OpenGrok查看Android源码的全部内容,希望文章能够帮你解决工具使用-Mac上搭建OpenGrok查看Android源码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复