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 (轉載)

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