2025年Ubuntu18.04搭建OpenGrok代码搜索工具

Ubuntu18.04搭建OpenGrok代码搜索工具背景 Adnroid 系统代码很庞大 查看费劲 Source Insight 和 Android Studio 导入源码 都不是很好用 OpenGrok 支持代码搜索和跳转 也支持查找文件 因此 为了方便日常开发 搭建 OpenGrok 很有必要 下面将介绍详细的搭建步骤

大家好,我是讯享网,很高兴认识大家。

背景

Adnroid系统代码很庞大,查看费劲,Source Insight 和Android Studio导入源码,都不是很好用,OpenGrok支持代码搜索和跳转,也支持查找文件,因此,为了方便日常开发,搭建OpenGrok很有必要,下面将介绍详细的搭建步骤

OpenGrok环境搭建

一、下载工具

1、tomcat下载

tomcat版本 :apache-tomcat-9.0.64.tar.gz
下载地址:https://tomcat.apache.org/download-90.cgi
将其存放至/opt目录下

2、opengrok下载

opengrok版本:opengrok-1.3.16.tar.gz
下载地址:https://github.com/oracle/opengrok/releases/tag/1.3.16
将其存放至/opt目录下

二、jdk安装

sudo apt-get install openjdk-8-jdk

讯享网

三、安装universal-ctags


讯享网

已下载的安装包:https://download.csdn.net/download/banzhuantuqiang/

也可从github上下载:

下载地址:git clone https://github.com/universal-ctags/ctags.git 

1、移除exuberant-ctags
 

讯享网sudo apt-get remove --purge exuberant-ctags

2、编译安装universal-ctags

tar -zxvf ctags.tar.gz cd ctags/ ./autogen.sh ./configure make sudo make install

3、查看 安装位置,后面构建索引需要用到

讯享网whereis ctags 结果: ctags: /usr/local/bin/ctags 

4、查看ctags版本

ctags --version 结果: Universal Ctags 6.0.0, Copyright (C) 2015-2022 Universal Ctags Team Universal Ctags is derived from Exuberant Ctags. Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert Compiled: Aug 26 2023, 06:24:56 URL: https://ctags.io/ Output version: 0.0 Optional compiled features: +wildcards, +regex, +gnulib_regex, +iconv, +option-directory, +packcc, +optscript

四、安装Tomcat

1、解压并重命名

讯享网cd /opt tar -zxf apache-tomcat-9.0.64.tar.gz rm apache-tomcat-9.0.64.tar.gz mv apache-tomcat-9.0.64/ tomcat

 2、启动服务器

cd /opt/tomcat/bin/ ./startup.sh# 同网络下浏览器输入主机IP,若成功打开网页则服务器安装成功 例如:http://192.168.21.225:8080/

3、关闭服务器

讯享网cd /opt/tomcat/bin/ ./shutdown.sh

五、安装OpenGrok

解压安装 cd /opt tar -zxf opengrok-1.3.16.tar.gz rm opengrok-1.3.16.tar.gz mv opengrok-1.3.16/ opengrok

六、Tomcat与OpenGrok关联及配置

1、查看webapps目录

讯享网ls -l /opt/tomcat/webapps 可以看到目录下并没有source目录 

2、source.war文件复制

将opengrok的lib目录下的source.war文件,复制到tomcat的webapp目录下 cp /opt/opengrok/lib/source.war /opt/tomcat/webapps/

3、重启tomcat服务器

讯享网执行下面的操作后,此时系统会自动在webapp目录下生成一个source目录 cd /opt/tomcat/bin/ ./startup.sh ./shutdown.sh

4、再次查看webapps目录

ls -l /opt/tomcat/webapps 可以看到目录下生成了source目录

5、删除source.war文件


6、在opengrok目录下创建相应的目录

讯享网mkdir -p /opt/opengrok/source # 该目录直接关联到源代码 mkdir -p /opt/opengrok/data # 该目录存放源代码索引文件 mkdir -p /opt/opengrok/etc # 该目录存放后期代码同步的必须文件

7、配置环境变量

vim /etc/profile # 添加如下变量 export OPENGROK_TOMCAT_BASE=/opt/tomcat export CATALINA_HOME=/opt/tomcat export OPENGROK_APP_SERVER=Tomcat export OPENGROK_INSTANCE_BASE=/opt/opengrok 注:如果多个地方装了tomcat,该环境变量将决定用哪个

8、更新环境变量

讯享网source /etc/profile

9、建立源码仓库,并放入相关代码(此目录根据实际情况建立)

10、软链接关联相关代码

根据自己opengrok位置和源码位置链接,这里的source和步骤6建的要对应上 cd /opt/opengrok/source ln -s /data01/Qualcomm/865/android10/Qualcomm865_vir Qualcomm865_vir 注:如果多套代码,就建立多个映射,建议代码用映射的方法

11、生成索引文件和configuration.xml文件

讯享网索引文件路径:/opt/opengrok/data/index configuration.xml文件路径:/opt/opengrok/data/xref 命令如下: sudo java -Xmx10g -jar /opt/opengrok/lib/opengrok.jar -c /usr/local/bin/ctags -P -S -v -s /opt/opengrok/source -d /opt/opengrok/data -i d:.git -i d:.repo -i d:out -i *.js -i *.jar -i *.zip -i *.db -i *.apk -i *.tar -i *.tar.bz2 -i *.json -i *.gz -W /opt/opengrok/etc/configuration.xml -m 512 注意:这里根据代码量决定需要多长时间,代码量大,就比较耗时,一般配置Java最大堆内存为8g,防止内存溢出,如果不配置,内存溢出会中断构建索引 注:这里要把各个参数都设置好,看好每个参数的函数所对应的文件: -Xmx8g:配置Java最大堆内存为8g,防止内存溢出。 -jar:指定opengrok.jar:指定opengrok.jar包.(这里不改) -c :指定universal-ctags的路径,这里我们之前获得过ctags的路径。 -d :指定文件存放路径,在上面的路径下新建data文件夹 -w :指定configuration.xml的路径 -m :指定opengrok索引时的缓存大小,默认只有16M -i : 后面表示忽略文件夹或者某种格式的文件 

12、关联configuration.xml文件 

将/var/opengrok/etc/configuration.xml路径替换为上一步新生成的/opt/opengrok/etc/configuration.xml vim /opt/tomcat/webapps/source/WEB-INF/web.xml 

 

 

13、启动tomcat服务器

讯享网cd /opt/tomcat/bin/ ./startup.sh ./shutdown.sh ./startup.sh 

14、功能验证

浏览器内输入192.168.21.225:8080/source便可使用opengrok搜索代码 注:默认是8080端口,可在tomcat/conf/server.xml修改默认端口

注:如果构建索引失败,将opengrok/data目录删除,-Xmx值和-m 值设置大一些

小讯
上一篇 2025-03-23 15:51
下一篇 2025-03-31 09:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/33731.html