opengrok使用教程之单工程(上)

  1. 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的搭建过程。

  1. Java环境配置
    1.通过 sudo yum install java 或者 sudo apt-get install java安装java 1.8.x版本(已有java1.8版本可跳过该步骤)

  2. 查看设备Java版本号,确保$ java -version 为 java version “1.8.x”及以上版本
    java -version//命令可以查看版本

  3. 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 (转载)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章