使用OpenGrok閱讀原始碼

flueky發表於2019-03-01

0 前言

打算本週再寫一篇關於Android的文章, 卻忘了帶工作電腦的充電器。上週主要從事了安卓原始碼的閱讀工作,那麼今天就來分享下Android原始碼的閱讀總結。不要天真的以為這是篇介紹安卓原始碼的文章,畢竟一週的時間不足以產生更多的心得體會,而是介紹一種閱讀原始碼的利器——OpenGrok。工欲善其事必先利其器!!!

其實在開發過程中,通常遇到一些閱讀原始碼的工作。只不過由於程式碼量少的原因,使用 IDE,如:AndroidStudio,和VSCode等文字編輯工具。但由於 AOSP (Android Open Source Project)的程式碼體系巨大,使用上述工具顯得力不從心,那麼請使用OpenGrok

1 準備工作

1.1 Java 環境

這是每個使用Java語言開發者必須安裝的開發環境,如果你是c/c++等其他語言的開發者,請參閱安裝Java環境

1.2 Tomcat 服務

Tomcat伺服器是一個免費的開放原始碼的Web應用伺服器,屬於輕量級應用伺服器。

下載地址:

  1. windows/mac/linux 通用 apache-tomcat-9.0.14.zip

  2. windows 64 專用 apache-tomcat-9.0.14-windows-x64.zip

下載後解壓在本地即可。

tomcatbin目錄中找到startup.bat( windows )或startup.sh(mac/linux)檔案,雙擊啟動tomcat服務。

使用OpenGrok閱讀原始碼

1.3 Universal Ctags

開源地址及安裝教程見:github.com/universal-c…

Windows 系統選擇下面的版本下載成功後解壓到本地,並將解壓後的路徑新增至path環境變數。

  1. ctags-2019-01-18_5a2b65f8-x64.zip

  2. ctags-2019-01-18_5a2b65f8-x86.zip

Mac 系統使用命令程式安裝。

brew install --HEAD universal-ctags/universal-ctags/universal-ctags
複製程式碼

2 配置 Open Grok

2.1 下載

下載頁面:github.com/oracle/open… ,最新版本opengrok-1.1.2.tar.gz

2.2 解壓 source.war

下載成功後解壓在本地,將lib目錄下的source.war檔案解壓到tomcatwebapps目錄下。

使用OpenGrok閱讀原始碼
使用OpenGrok閱讀原始碼

2.3 新增 data root

data root 用於放置生成的索引檔案和配置資訊檔案configuration.xml,建議在OpenGrok目錄下新建data資料夾。

2.4 新增 source root

OpenGrok目錄下新建project資料夾作為 source rootOpenGrok認為source root目錄下的每個資料夾都是一個專案。可以根據此特性新增多個專案。

2.5 配置configuration.xml

  1. 生成 configuration.xml
java -jar opengrok/lib/opengrok.jar -s opengork/project -d opengrok/data -W opengrok/data/configuration.xml
複製程式碼

命令中opengrok表示解壓後的opengrok目錄。

  1. 配置 configuration.xml

tomcat/webapps/source/WEB-INF/web.xml 修改CONFIGURATION變數,指向剛剛生成的configuration.xml檔案路徑。比如,樓主電腦的配置如下。

<display-name>OpenGrok</display-name>
<description>A wicked fast source browser</description>
<context-param>
    <description>Full path to the configuration file where OpenGrok can read its configuration</description>
    <param-name>CONFIGURATION</param-name>
    <param-value>D:developopengrok-1.1.1dataconfiguration.xml</param-value>
</context-param>
複製程式碼

2.6 啟動OpenGrok

完成上述操作之後,在瀏覽器中輸入 http://localhost:8080/source 瀏覽OpenGrok頁面。

使用OpenGrok閱讀原始碼

3 新增原始碼目錄

由於本機沒下載Android原始碼,在此使用OpenSSL原始碼演示。

OpenSSL地址:github.com/openssl/ope…

只需將需要閱讀的原發放在OpenGroksource root目錄下。

opengrok/project目錄下執行下面的命令:

  1. windows
mklink /J openssl openssl目錄
複製程式碼
  1. mac/linux
ln -s openssl目錄 openssl
複製程式碼

再建立索引

java -jar opengrok/lib/opengrok.jar -P -S -v -s opengork/project -d opengrok/data -W opengrok/data/configuration.xml
複製程式碼

命令中opengrok表示解壓後的opengrok目錄。

重啟tomcat服務,重新整理頁面 http://localhost:8080/source/

使用OpenGrok閱讀原始碼

雙擊openssl,開啟後的頁面如下:

使用OpenGrok閱讀原始碼

或者直接搜尋某個檔案:

使用OpenGrok閱讀原始碼

在程式碼閱讀頁面,點選方法名和類名,亦會跳轉搜尋頁面。

覺得有用?那打賞一個唄。我要打賞

此處是廣告Flueky的技術小站

相關文章