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

opengrok使用教程之单工程(上)OpenGrok简介有些情况下,我们需要在GB级别甚至几十GB级别且随时不断更新的大型代码(比如Android源码)里面搜索阅读源码,那么我们自然而然会有以下一些基本的需求:能够快速搜索代码代码可存放于本地/服务器代码之间可以跳转跨平台易于维护…显然SourceInsight、ctags、grep等工具在这些场景下就不太适合,于是有了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 (转载)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139677.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python 列求和_python分数序列求和

    python 列求和_python分数序列求和欢迎访问少儿编程网(http://www.pxcodes.com)在python求和的方法:首先定义数组,并输入求和的整数;然后使用for循环,保存在数组中;接着调用sum函数,计算所有整数的和;**后输出计算得到的所有整数和。6MX少儿编程网-https://www.pxcodes.com6MX少儿编程网-https://www.pxcodes.com本教程操作环境:windows7系统、pyt…

    2022年10月27日
  • python 查tensorflow版本_如何查看tensorflow的版本「建议收藏」

    python 查tensorflow版本_如何查看tensorflow的版本「建议收藏」本文介绍如何使用pip查看tensorflow的版本号,请查看如下步骤。本文使用的windows10系统,如为linux系统也是同样用pip命令查看。工具/原料window10python3.7(其他python也可以)方法/步骤1通过快捷键windows键+R,打开运行框,输入“cmd”命令,打开命令行窗口2在命令行窗口中输入命令piplist3命令执行后,会列出当前python环…

    2022年6月25日
  • DOS攻击与防御_xss攻击与防御

    DOS攻击与防御_xss攻击与防御DOS攻击概念DOS:DenialofSerivce拒绝服务攻击内因:网络安全协议的安全缺陷外因:利益驱使的蓄意行为偶然的DOS攻击原理攻击原理:利用合理的请求占用过多的服务资源,使得服务超载,无法响应正常的服务请求.网络带宽文件系统的空间容开放的进程允许的连接DOS攻击方法1.耗尽计算机资源,如带宽,内存,磁盘空间,处理器时间.2.破坏配置信息,如路由信息.3…

    2022年10月1日
  • 5款App帮你创建时间轴

    做一个时间轴有很多理由。你可能希望创建一个关于如何展开项目和运作公司的时序图,追踪家族史,或者记录你职业生涯的进步轨迹。但不管是什么原因,你都需要一个合适的工具来让这个时间轴易于使用。你不能只是用一个电子表格或者文本文档来创建一个有用的互动工具。相反,你需要合适的软件来完成这项工作。我发现了5款应用可以很好地创建时间轴,不管是针对什么用途。有些是移动应…

    2022年4月7日
  • 记忆化递归(记忆化搜索)

    记忆化递归(记忆化搜索)前言​ 前一篇博客写到入门的dp算法,后来又遇到一个奇怪的变种题目,同样也是可以用dp写的(至少标签是有动态规划)。我看了答案还是有些不能完全理解,于是又去b站翻了翻教程基础DP,其中提到记忆化的递归(也称记忆化搜索),相当于结合了dp和递归的优点(这时我又觉得比DP还厉害),然后就准备写写记忆化递归。目录​ 1.记忆化递归的解释与分析​ 2.记忆化递归的应用一、记忆化递归的解释与分析前面说道它结合了dp和递归的优点,分别是记忆化和逻辑清晰易懂。下面还是结合斐波那契数列的来理解:F(.

    2022年7月26日
  • pycharm2021.12.12 激活(JetBrains全家桶)

    (pycharm2021.12.12 激活)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html4D5UJRVIF9-eyJsaWNlbnNlSWQi…

    2022年3月30日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号