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/
准备的资源
-
JAVA 11
-
apache-tomcat-10.0.
-
opengrok-1.7.
其他相关工具,遇到缺少时安装即可。
步骤
安装java 11
ubuntu下直接apt install即可
add-apt-repository ppa:linuxuprising/java apt update apt-get install openjdk-11-jdk
安装ctags
下载源码包并解压后
# /universal-ctags/ctags ./ ./configure make & make install
安装tomcat10
-
将归档文件解压 Index of /dist/tomcat/tomcat-10/v10.0.8/bin/
-
使用
apache-tomcat-10.0.8/bin/
脚本及start/stop/restart
启动关闭或者重启tomcat服务 -
在浏览器中输入网址http://localhost:8080若能显示tomcat的界面即表示启动成功
安装opengrok
-
建立以下目录 /oracle/opengrok/releases/tag/1.7.13
mkdir opengrok/{src,data,dist,etc,log}
-
以上目录要保证web app有写的权限,如无特殊禁忌,可以设为777
-
将归档文件解压到dist
tar -C opengrok/dist --strip-components=1 -xzf
配置
tomcat配置
-
将日志配置文件由解压目录拷贝到新建目录,之后log会输出到
opengrok/logs
cp opengrok/dist/doc/ opengrok/etc
-
log的配置参考
handlers= , = /opengrok/log/opengrok%g.% = false = 0 = 30 = ALL = = WARNING = = FINE
-
将解压出来的
opengrok/dist/lib/
拷贝到apache-tomcat-10.0.8/webapps/
目录,之后tomcat会自动识别.war
文件,并将其解压到apache-tomcat-10.0.8/webapps/
目录,文件夹名称为apache-tomcat-10.0.8/webapps/source
-
再次打开浏览器,输入网址http://10.183.154.165:8080/source,会发现显示一堆错误,原因是我们还没建立索引
-
便捷apache-tomcat-10.0.8/webapps/source/WEB-INF/,主要配置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/</param-value> </context-param
opengrok配置
-
将工程源码准备好,通过在
opengrok/src
目录下建立软链接的方式加入代码ln -s /cloud/workspace/ivi ivi
此方式可以加入多个工程,进而形成多工程检索
-
生成索引
java \ -=/opt/opengrok/etc/ \ -jar /opt/opengrok/dist/lib/ \ -c /usr/local/bin/ctags \ -s /opt/opengrok/src -d /opt/opengrok/data -H -P -S -G \ -W /opt/opengrok/etc/ -U http://localhost:8080/source
索引建立的时间比较长,中间的warning可以先不管,索引建立完成后再次打开url即可使用opengrok查找。
opengrok tools安装
文件路径opengrok/dist/tools/
文件夹下有个,是安装引导。
一定要设置好计算云的代理,要不然手动安装python包会累死,手动安装了10几个包后,找到了设置办法,pip的设置如下:
# cat .pip/ [global] trusted-host= index-url=/pypi/simple/
之后直接运行下面的命令就OK了
python3 -m pip install
其他事项
opengrok的配置项
通过命令可获取到帮助
java -jar /opt/opengrok/dist/lib/ --help
有用的配置
-P
表示为 source root 目录下的每个一级子目录生成一个工程。
-d
表示指定 data root
-W
表示指定将配置写到该文件
多工程
通过-P
选项和src目录下多个链接可以实现
索引刷新
中文乱码
可以修改apache-tomcat-10.0.8/webapps/source/WEB-INF/
文件指定编码格式
参考链接
-
opengrok官网
-
How-to-setup-OpenGrok
-
OpenGork官方WIKI
-
OpenGrok搭建笔记
-
计算云搭建opengrok
-
ubuntu16.04搭建openGrok
-
Opengrok的安装及配置