Ubuntu18.04搭建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安装

注:运行环境需要大于等于jdk8的版本
 

sudo apt-get install openjdk-8-jdk

三、安装universal-ctags

exuberant-ctags已经不再维护,对opengrok不友好。
从github上下载universal-ctags进行编译安装。

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

也可从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 值设置大一些

猜你喜欢

转载自blog.csdn.net/banzhuantuqiang/article/details/132513879