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的壓縮包。
在這裏插入圖片描述

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