Android源码阅读神器-openGrok的搭建

前言

阅读Android源码这样庞大的代码,没有一个趁手的工具,会比较难受。之前都是通过vim来阅读源码,但没有做相关的vim插件配置,所以每次都需要进行grep,效率极低。后来尝试在ubuntu中使用sourceinsight,效果也不是特别好,不流畅,而且同步代码时比较慢(可能是我电脑性能问题)。后面尝试了openGrok,一个让我欲罢不能的阅读源码的工具。

但在搭建openGrok的时候,还是遇到了不少问题,可能openGrok或者tomcat版本不对,或者我配置的方法问题,导致一直踩坑。这里分享下搭建openGrok的方法和过程。

概述

openGrok依赖于tomcat,所以使用openGrok需要安装tomcat。废话少说,进入准备工作。

准备工作

java1.8安装

这个网上百度进行安装就好,不在这里赘述。

tomcat下载

网上有很多的下载资源,但使用总是失败,最后使用了apache-tomcat-8.5版本,文末会列出下载的地方。

ctags下载

sudo apt-get install ctags  //安装ctags

openGrok下载

这个最后使用了opengrok-0.12.1.5版本,同样下载路径在文末列出。

配置

在home目录下新建一个文件夹bin,然后将tomcat和opengrok解压缩后一起放入,如下:

/home/xxx/bin# ls
apache-tomcat-8.5/  opengrok-0.12.1.5/

配置环境变量

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export OPENGROK_INSTANCE_BASE=/home/xxx/bin/opengrok-0.12.1.5
export OPENGROK_TOMCAT_BASE=/home/xxx/bin/apache-tomcat-8.5

cd /home/xxx/bin/opengrok-0.12.1.5/bin
sudo ./OpenGrok deploy

创建src,etc,data

本身openGrok并没有这三个文件夹,需要自己创建。这三个文件夹的用处,这里稍微介绍下:

src-------用于存放源码,即需要通过openGRok的源码
data------用于存放源码的索引数据
etc-------用于配置文件,比如configuration.xml文件
mkdir database
cp database
mkdir src etc data

其实没必要真的去copy一份源码到src,可以通过软连接的方式链接到我们的具体源码路径:

cd /home/xxx/bin/opengrok-0.12.1.5
ln -s /home/xxx/code/Service/ database/src/android

这个src就是默认的源码路径,当然也可以在生成源码索引的时候,再指定路径,这个也是可以的,下面会介绍到。

生成configuration.xml文件和索引

configuration.xml文件本身并不存在,需要我们自己去生成。configuration.xml文件的在与代码跳转和索引,如果没有这个配置文件,则使用openGrok阅读代码时,无法进行代码跳转。

cd /home/xxx/bin/opengrok-0.12.1.5
java -Djava.util.logging.config.file=/home/xxx/bin/opengrok-0.12.1.5/logging.properties -jar lib/opengrok.jar -c /usr/bin/ctags -s /home/xxx/code/Service/ -d /home/xxx/bin/opengrok-0.12.1.5/database/data/ -H -P -S -G -W /home/xxx/bin/opengrok-0.12.1.5/database/etc/configuration.xml

指定源码路径如下:

/home/xxx/code/Service/

将生成的configuration.xml文件保存到如下路径:

/home/xxx/bin/opengrok-0.12.1.5/database/etc/configuration.xml

将configuration.xml文件配置到tomcat中:

vim /home/xxx/bin/apache-tomcat-8.5/webapps/source/WEB-INF/web.xml

<context-param>
    <description>Full path to the configuration file where OpenGrok can read its configuration</description>
    <param-name>CONFIGURATION</param-name>
    <param-value>/home/xxx/bin/opengrok-0.12.1.5/database/etc/configuration.xml</param-value>
</context-param>

启动tomcat

openGrok依赖于tomcat,所以使用openGrok时,需要先启动tomcat,否则网页无法正常显示,启动方法如下:

cd /home/xxx/bin/apache-tomcat-8.5/bin
./startup.sh  //启动tomcat

当更新了configuration.xml文件后,也需要对tomcat进行重启:

./shutdown.sh  //先关闭tomcat
./startup.sh     //再启动tomcat

这一步就足以使用openGrok了,打开一个你最喜欢的浏览器,打开:

http://localhost:8080/source/

尽情在Android源码的海洋中遨游,畅享吧!

关于tomcat和openGrok的下载地址

这两个压缩包的下载极慢,这边直接将它们放到百度网盘上了,大家可以通过关注微信公众号【Android系统实战开发】或者扫描如下二维码进行关注,然后在聊天界面回复【opengrok】,则可以获取tomcat和openGrok的压缩包。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章