大家好,又见面了,我是你们的朋友全栈君。
- OpenGrok简介
有些情况下,我们需要在GB级别甚至几十GB级别且随时不断更新的大型代码(比如Android源码)里面搜索阅读源码,那么我们自然而然会有以下一些基本的需求:
能够快速搜索代码
代码可存放于本地/服务器
代码之间可以跳转
跨平台
易于维护
…
显然SourceInsight、ctags、grep等工具在这些场景下就不太适合,于是有了OpenGrok这类代码搜索引擎。
先看看维基百科对OpenGrok的介绍:
OpenGrok is a source code search and cross reference engine. It helps programmers to search, cross-reference and navigate source code trees. —— [ 维基百科]
大概的意思是说,OpenGrok是一个快速、便于使用的源代码搜索与对照引擎。它能够帮助我们搜索,对照,定位我们的源代码树。
OpenGrok 应该算是我目前所知道的最好用的代码搜索、浏览工具了。由于OpenGrok是基于数据库的搜索,在代码量巨大的情况下(比如整份Android源码),搜索速度比sourceinsight要快速得多。另外,OpenGrok还是OpenSolaris操作系统源文件浏览和搜索的工具。一直以来,我都是使用OpenGrok来搜索阅读Android系统的源代码。
目前网络上已经有使用OpenGrok对Android源码进行索引的搜索引擎,地址:http://androidxref.com
OpenGrok官方主页请参照:http://opengrok.github.io/OpenGrok/
下面记录一下OpenGrok的搭建过程。
-
Java环境配置
1.通过 sudo yum install java 或者 sudo apt-get install java安装java 1.8.x版本(已有java1.8版本可跳过该步骤) -
查看设备Java版本号,确保$ java -version 为 java version “1.8.x”及以上版本
java -version//命令可以查看版本 -
Tomcat环境配置
$ sudo apt-get install exuberant-ctags tomcat8
$ sudo /etc/init.d/tomcat8 restart
浏览器中打开http://localhost:8080/,出现下图说明tomcat8没问题。
3. OpenGrok搭建
-下载OpenGrok
OpenGrok目前的版本不断演进:https://github.com/oracle/opengrok/releases
但是强烈建议不要采用最新版本(根据实测发现虽然可以完成OpenGrok环境的搭建,但极大可能发生无法为代码建立索引的情况,该问题排查数天无果,转而基于低版本搭建成功)
如下版本存在各自的问题
(1). https://github.com/oracle/opengrok/releases/tag/1.1-rc38 无法完成代码的符号解析
(2). https://github.com/oracle/opengrok/releases/tag/0.12.1.5
(3). https://github.com/oracle/opengrok/releases/tag/0.13-rc10
从 https://github.com/oracle/opengrok/releases/tag/0.12.1.5 下载并解压至 /opt/opengrok-0.12.1.5
为OpenGrok配置环境
export OPENGROK_PATH=”/opt/opengrok-0.12.1.5″
-部署OpenGrok
OpenGrok提供了现成的脚本。首先到前面解压后的目录,运行以下命令。其中环境变量OPENGROK_TOMCAT_BASE为tomcat所在路径(tomcat7貌似脚本自己能找到,tomcat8自动找不到,所以人肉指定)。
tomcat 安装路径通过命令查询如下:
$ sudo OPENGROK_TOMCAT_BASE=/var/lib/tomcat8 ./OpenGrok deploy
这步之后浏览器打开http://localhost:8080/source/,应该能看到下面的页面,但现在是空的。
- 生成索引
用下面命令生成代码索引。假如代码在/home/jzj/source/Android/7.1下的话:
~opt/opengrok-0.12.1.5/bin$ sudo ./OpenGrok index /home/cpy/a6/kernel
等结束后打开http://localhost:8080/source/,大概20min就能浏览代码了。
https://www.linuxidc.com/Linux/2017-11/148466.htm (转载)
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139677.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...