当前位置: 首页 > 工具软件 > OpenGrok > 使用案例 >

OpenGrok搭建方法

朱修真
2023-12-01

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的安装及配置

 类似资料: