OpenGrok介绍
OpenGrok为一个方便快速的源码搜索及交叉引用查询引擎。它以Java编写,可用于源码搜索、交叉引用查询、以及源码树定位。它支持多种编码语言和多种代码版本控制引擎系统。OpenGrok提供了如下这些功能:
- 快速的源码搜索引擎:
- 可搜索全文、定义、符号、路径和版本历史
- 限定子目录树进行搜索(分层搜索)
- 增量更新索引,如:仅更新从上次更新后修改过的文件
- 以类Google搜索语法进行查询,如: path:Makefile defs:target等
- 搜索指定日期范围内修改过的文件
- 支持使用通配符*和?进行搜索
- 在搜索结果中显示匹配行
- 为版本控制系统,如Mercurial、CVS、SVN、SCCS或TeamWare等提供了只读的Web接口:
- 文件历史日志;
- 以udiffs或sdiffs显示两个版本之间的差异;
- 以RSS格式显示自定目录的累积日志
- 具有语法高亮功能的在线交叉索引,以CSS样式表提供的高可定制的外观;
- 可以为新的编程语言或版本控制系统编写新的插件;
更多的信息建议参考官方网站,以下描述安装及使用的步骤:
安装Java
考虑到OpenGrok以Java语言写就,因此在使用OpenGrok之前需要先安装Java,在Ubuntu下安装Java步骤如下:
- 加入源路径:
add-apt-repository ppa:webupd8team/java
- 更新源信息:
apt-get update
- 安装Java-1.8:
apt-get install oracle-java8-installer
- 版本切换:
update-alternatives --config java update-alternatives --config javac
安装OpenGrok
安装OpenGrok的详细步骤如下:
- 下载OpenGrok:
cd ~ wget https://github.com/OpenGrok/OpenGrok/releases/download/1.1-rc5/opengrok-1.1-rc5.tar.gz
- 解压OpenGrok:
tar zxvf opengrok-1.1-rc5.tar.gz
- 其中版本需求如下:
* Latest Java (At least 1.8) http://www.oracle.com/technetwork/java/ * A servlet container like Tomcat (8.x or later) supporting Servlet 2.5 and JSP 2.1 http://tomcat.apache.org/ * Exuberant Ctags or Universal Ctags http://ctags.sourceforge.net/ https://ctags.io/ * Source Code Management installation depending on type of repositories indexed * If you want to build OpenGrok: - Ant (1.9.4 and later) http://ant.apache.org/ - JFlex http://www.jflex.de/ - Netbeans (optional, at least 8.2, will need Ant 1.9.4) http://netbeans.org/
安装Ctags
OpenGrok需要使用Ctags进行语法分析,因此需要安装etags:
aptitude install exuberant-ctags
安装Tomcat
OpenGrok需要使用Tomcat作为伺服器,因此还需要安装Tomcat,具体步骤如下:
- 安装Tomcat:
cd /tmp wget http://ftp.riken.jp/net/apache/tomcat/tomcat-8/v8.5.16/bin/apache-tomcat-8.5.16.tar.gz tar zxvf apache-tomcat-8.5.16.tar.gz mv apache-tomcat-8.5.16 /usr/share/
- 设置OpenGrok所需环境变量:
export CATALINA_HOME=/usr/share/apache-tomcat-8.5.16
- 启动Tomcat:
cd /usr/share/apache-tomcat-8.5.16/bin ./startup.sh
- 打开如下链接测试Tomcat:
可以打开网页并正常显示,则表示安装成功。http://localhost:8080
测试
Tomcat安装完毕后,首先需要测试OpenGrok是否能正常部署,测试步骤如下:
- 部署OpenGrok:
export OPENGROK_TOMCAT_BASE=$CATALINA_HOME cd ~/opengrok-1.1-rc5/bin ./OpenGrok deploy
- 打开如下链接测试部署是否成功:
有看到OpenGrok页面即可。http://localhost:8080/source
部署
OpenGrok部署测试通过后,就可以开始部署真实的环境了,部署步骤如下:
- 建立代码索引:
其中/root/chrome为目标代码放置位置。cd ~/opengrok-1.1-rc5/bin ./OpenGrok index /root/chrome
- 最终生成的索引文件的默认位置为:
/var/opengrok