大家好,又见面了,我是你们的朋友全栈君。
- 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 (转载)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139677.html原文链接:https://javaforall.cn