OpenGrok简介

OpenGrok为一个方便快速的源码搜索及交叉引用查询引擎。它以Java编写,可用于源码搜索、交叉引用查询、以及源码树定位。它支持多种编码语言和多种代码版本控制引擎系统。OpenGrok提供了如下这些功能:

  • 快速的源码搜索引擎:

    • 可搜索全文、定义、符号、路径和版本历史

    • 限定子目录树进行搜索(分层搜索)

    • 增量更新索引,如:仅更新从上次更新后修改过的文件

    • 以类Google搜索语法进行查询,如: path:Makefile defs:target等

    • 搜索指定日期范围内修改过的文件

    • 支持使用通配符*和?进行搜索

    • 在搜索结果中显示匹配行

  • 为版本控制系统,如Mercurial、CVS、SVN、SCCS或TeamWare等提供了只读的Web接口:

    • 文件历史日志;

    • 以udiffs或sdiffs显示两个版本之间的差异;

    • 以RSS格式显示自定目录的累积日志

  • 具有语法高亮功能的在线交叉索引,以CSS样式表提供的高可定制的外观;

  • 可以为新的编程语言或版本控制系统编写新的插件;

OpenGrok环境搭建 - 简书

OpenGrok is a fast and usable source code search and cross reference engine, written in Java. It helps you search, cross-reference and navigate your source tree. It can understand various program file formats and version control histories of many source code management systems.

Official page of the project is on: {OpenGrok by OpenGrok/

准备的资源

  1. JAVA 11

  2. apache-tomcat-10.0.8.tar.gz

  3. ctags-master.zip

  4. opengrok-1.7.13.tar.gz

其他相关工具,遇到缺少时安装即可。

步骤

安装java 11

ubuntu下直接apt install即可

add-apt-repository ppa:linuxuprising/java
apt update
apt-get install openjdk-11-jdk

安装ctags

下载源码包并解压后

# https://github.com/universal-ctags/ctags
./autogen.sh
./configure
make & make install

安装tomcat10

  1. 将归档文件解压 Index of /dist/tomcat/tomcat-10/v10.0.8/bin/

  2. 使用apache-tomcat-10.0.8/bin/catalina.sh脚本及start/stop/restart启动关闭或者重启tomcat服务

  3. 在浏览器中输入网址http://localhost:8080若能显示tomcat的界面即表示启动成功

安装opengrok

  1. 建立以下目录 https://github.com/oracle/opengrok/releases/tag/1.7.13mkdir opengrok/{src,data,dist,etc,log}

  2. 以上目录要保证web app有写的权限,如无特殊禁忌,可以设为777

  3. 将归档文件解压到disttar -C opengrok/dist --strip-components=1 -xzf opengrok-X.Y.Z.tar.gz

配置

tomcat配置

  1. 将日志配置文件由解压目录拷贝到新建目录,之后log会输出到opengrok/logscp opengrok/dist/doc/logging.properties opengrok/etc

  2. log的配置参考

    handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
    ​
    java.util.logging.FileHandler.pattern = /opengrok/log/opengrok%g.%u.log
    java.util.logging.FileHandler.append = false
    java.util.logging.FileHandler.limit = 0
    java.util.logging.FileHandler.count = 30
    java.util.logging.FileHandler.level = ALL
    java.util.logging.FileHandler.formatter = org.opengrok.indexer.logger.formatter.SimpleFileLogFormatter
    ​
    java.util.logging.ConsoleHandler.level = WARNING
    java.util.logging.ConsoleHandler.formatter = org.opengrok.indexer.logger.formatter.SimpleFileLogFormatter
    ​
    org.opengrok.level = FINE
    ​
  3. 将解压出来的opengrok/dist/lib/source.war拷贝到apache-tomcat-10.0.8/webapps/目录,之后tomcat会自动识别.war文件,并将其解压到apache-tomcat-10.0.8/webapps/目录,文件夹名称为apache-tomcat-10.0.8/webapps/source

  4. 再次打开浏览器,输入网址http://10.183.154.165:8080/source,会发现显示一堆错误,原因是我们还没建立索引

  5. 便捷apache-tomcat-10.0.8/webapps/source/WEB-INF/web.xml,主要配置opengrok的配置文件路径,示例如下

        <context-param><description>Full path to the configuration file where OpenGrok can read its configuration</description><param-name>CONFIGURATION</param-name><param-value>/usr/local/opengrok/etc/configuration.xml</param-value></context-param

opengrok配置

  1. 将工程源码准备好,通过在opengrok/src目录下建立软链接的方式加入代码

    ln -s /cloud/workspace/ivi ivi

    此方式可以加入多个工程,进而形成多工程检索

  2. 生成索引

    java \-Djava.util.logging.config.file=/opt/opengrok/etc/logging.properties \-jar /opt/opengrok/dist/lib/opengrok.jar \-c /usr/local/bin/ctags \-s /opt/opengrok/src -d /opt/opengrok/data -H -P -S -G \-W /opt/opengrok/etc/configuration.xml -U http://localhost:8080/source

    索引建立的时间比较长,中间的warning可以先不管,索引建立完成后再次打开url即可使用opengrok查找。

opengrok tools安装

文件路径opengrok/dist/tools/opengrok-tools.tar.gz

文件夹下有个README.txt,是安装引导。

一定要设置好计算云的代理,要不然手动安装python包会累死,手动安装了10几个包后,找到了设置办法,pip的设置如下:

# cat .pip/pip.conf
[global]
trusted-host=mirrors.tools.huawei.com
index-url=http://mirrors.tools.huawei.com/pypi/simple/

之后直接运行下面的命令就OK了

python3 -m pip install opengrok-tools.tar.gz

其他事项

opengrok的配置项

通过命令可获取到帮助

java -jar /opt/opengrok/dist/lib/opengrok.jar --help

有用的配置

-P 表示为 source root 目录下的每个一级子目录生成一个工程。

-d 表示指定 data root

-W 表示指定将配置写到该文件

多工程

通过-P选项和src目录下多个链接可以实现

索引刷新

中文乱码

可以修改apache-tomcat-10.0.8/webapps/source/WEB-INF/web.xml文件指定编码格式

参考链接

  1. opengrok官网

  2. How-to-setup-OpenGrok

  3. OpenGork官方WIKI

  4. OpenGrok搭建笔记

  5. 计算云搭建opengrok

  6. ubuntu16.04搭建openGrok

  7. Opengrok的安装及配置

OpenGrok搭建方法相关推荐

  1. RabbitMQ的安装及集群搭建方法

    转自:http://blog.csdn.net/u013256816/article/details/53524766 RabbitMQ安装 1 安装erlang 下载地址:http://www.er ...

  2. Docker 私有仓库最简便的搭建方法

    http://blog.csdn.net/wangtaoking1/article/details/44180901/ Docker学习笔记 - Docker私有仓库搭建 http://www.jia ...

  3. 数据采集埋点福音!《企业埋点体系搭建方法论及实践经验》白皮书上线

    <企业埋点体系搭建方法论及实践经验>白皮书,依托神策数据服务的 1000 余家企业客户的数据采集实战经验,全面展示神策数据所沉淀的企业数据采集埋点的最佳实践,同时围绕企业在埋点过程中所遇到 ...

  4. 重磅 |《企业埋点体系搭建方法论及实践经验》白皮书上线

    <企业埋点体系搭建方法论及实践经验>白皮书,依托神策数据服务的 1000 余家企业客户的数据采集实战经验,全面展示神策数据所沉淀的企业数据采集埋点的最佳实践,同时围绕企业在埋点过程中所遇到 ...

  5. Redis Cluster搭建方法简介22211111

    Redis Cluster搭建方法简介 (2013-05-29 17:08:57) 转载▼ Redis Cluster即Redis的分布式版本,将是Redis继支持Lua脚本之后的又一重磅功能,官方声 ...

  6. Selenium Grid的搭建方法

    一.什么是Selenium Grid Selenium Grid 是一种可以并发执行 GUI 测试用例的测试执行机的集群环境,分为 HUB 和 Node 模式.Selenium Hub 用来管理各个 ...

  7. 竞价推广经验分享 账户的搭建方法

    最近很多朋友都在咨询我账户搭建的问题,为了帮助这些朋友能尽快上手,今天我们今天先讲一下百度推广账户的搭建,一个好的账户结构,对我们的账户质量度影响是非常大的,然而一些竞价猿都会忽略这一点.根据我在网络 ...

  8. 微信局域网测试环境搭建方法

    微信局域网测试环境搭建方法 微信现在越来越火,很多人想自己研究一下微信开发,但在开发平台认证的时候,必须通过80端口认证. 很多的宽带服务商把公司宽带的80端口封了, 而微信开发模式中服务器配置要求填 ...

  9. Debian本地源的搭建方法

    一些自己开发或者修改的debian程序,如果想使用apt-get工具进行安装的话,需要自己搭建debian软件源,本文简要介绍一下搭建方法. 目录结构: buildd@debian:~/debian- ...

最新文章

  1. 自然语言模型算法太杂乱?国产统一 AI 开源框架来了
  2. 简易的阻尼滚动条的插件
  3. leetcode day1 -- Reverse Words in a String Evaluate Reverse Polish Notation Max Points on a Li
  4. Flex通用克隆(clone)方法
  5. boost::geometry::tuples用法的测试程序
  6. Windows下Oracle的下载与安装
  7. springboot接收浏览器发送delete请求( method not allowed 405解决方法)
  8. 20 SD配置-主数据-定义客户账户组
  9. [HTML5]使用Box2dWeb模拟飞行箭矢
  10. c++ 数组指针和指针数组
  11. camvid数据集使用方法_github资源推荐:目标姿态检测数据集与渲染方法
  12. (2)量化交易学习-股票数据下载
  13. 概念理解:财新服务业PMI
  14. 国内千万级手机端视频互动娱乐直播完整源码
  15. ac68无线网卡 linux驱动下载,华硕USB-AC68驱动|华硕USB-AC68无线网卡驱动下载 v2.1.2.1官方版 - 121下载站...
  16. SEO推广技术是什么意思?SEO是什么职业?
  17. [推荐]php编码规范
  18. 几个不错的extjs的blog
  19. 浅谈使用Word和Baklib制作帮助文档区别
  20. CSAPP实验记录(2)--------- Bomb

热门文章

  1. table表格中实现圆角效果
  2. 用python批量下载贴吧图片 附源代码
  3. 22-Excel与数据分析
  4. 大促期间如何选择淘宝店铺托管?
  5. 儿童益智类型电子产品玩具需要什么认证?
  6. 肠道微生物群:心力衰竭的新治疗靶点
  7. 利用Access数据库搭建Capture_CIS元件封装库详细教程
  8. OctaneRender 故障排除
  9. 硬盘物理故障解决方法之电路板损坏修复方案
  10. GB9706.1-2020安规三项之漏电流测试方法