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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Lwip的udp编程

    Lwip的udp编程这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Ma…

    2025年8月27日
    8
  • <artifactId>ojdbc8</artifactId>「建议收藏」

    spring-boot-starter-parent作用在pom.xml中引入spring-boot-start-parent,spring官方的解释叫什么staterpoms,它可以提供dependencymanagement,也就是说依赖管理,引入以后在申明其它dependency的时候就不需要version了,后面可以看到。spring-boot-starter-web作用springweb核心组件spring-boot-maven-plugin作用如果我们要直接Main启动sprin

    2022年4月16日
    78
  • phpstorm2021免费版 激活码破解方法

    phpstorm2021免费版 激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    61
  • vue cli 3 升级到 vue cli 4 方法步骤及升级点总结「建议收藏」

    vue cli 3 升级到 vue cli 4 方法步骤及升级点总结「建议收藏」vuecli3升级到vuecli4指南vuecli3升级到vuecli4方法步骤及升级点总结vue-cli3升级vue-cli4官方英文升级文档,中文滞后一.首先,在全局安装最新的VueCLI:npminstall-g@vue/cli#ORyarnglobaladd@vue/cli检查安装的版本vue-V#输出:@vue/cli4.x.x说明@vue/cli4安装成功(vuecli3的版本会输出3.x.x)

    2025年8月7日
    5
  • 亿图图示mac版激活码 csdn(JetBrains全家桶)2022.01.24

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

    2022年3月31日
    269
  • latex中双引号和单引号的正确应用[通俗易懂]

    latex中双引号和单引号的正确应用[通俗易懂]用输入法中的中文模式键入的双引号和单引号并不是LaTeX的正确输入方式。正确的输入方法如下:使用键盘的Tab键上侧的连续键入两个“然后输入键盘的双引号’’。单引号输入类似。示例如下:演示代码:\documentclass{article}\setlength\textwidth{150pt}\begin{document}\largePumasare“large,cat-likeanimals’’whichare`foundinAmerica’.Whenr

    2022年6月25日
    28

发表回复

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

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