通過opengrok實現(xiàn)android整套代碼的快速搜索

整個Android代碼非常復(fù)雜谊迄,涉及到各種類型的文件,要做完整的搜索非常困難,給開發(fā)帶來很大的不便荚虚。對于aosp的代碼,可以通過http://androidxref.com/這個網(wǎng)址搜索籍茧,但是對于有平臺vendor的開發(fā)代碼來說就很困難版述。所以借用開源的opengrok自建一個搜索服務(wù)。

第一步:安裝tomcat寞冯,這個比較簡單

$ sudo apt-get install exuberant-ctags tomcat8

?$ sudo /etc/init.d/tomcat8 restart

瀏覽器中打開http://localhost:8080/渴析,出現(xiàn)下圖說明tomcat8沒問題晚伙。

第二步:布署 opengrok

在https://github.com/OpenGrok/OpenGrok/releases下載OpenGrok安裝包,比如opengrok-1.0俭茧,解壓安裝包咆疗。OpenGrok提供了現(xiàn)成的腳本可是自動布署,首先到前面解壓后的目錄母债,運(yùn)行以下命令午磁。其中環(huán)境變量OPENGROK_TOMCAT_BASE為tomcat所在路徑(tomcat7貌似腳本自己能找到,tomcat8自動找不到毡们,所以人肉指定)漓踢。

$ sudo OPENGROK_TOMCAT_BASE=/var/lib/tomcat8 ./OpenGrok deploy,

這樣就在tomcat的webapps目錄下有了source目錄

這步之后瀏覽器打開http://localhost:8080/source/漏隐,應(yīng)該能看到下面的頁面喧半,但現(xiàn)在是空的。

布署后最好重啟一下tomcat青责,否則可以提示找不到config文件挺据。

第三步:建立索引

建立索引有兩種方式,

第一種:

假如代碼在/home/jzj/source/Android/7.1下的話:用OpenGrok腳本生成脖隶,如下:

$ sudo ./OpenGrok index /home/jzj/source/android/7.1/

第二種扁耐,直接執(zhí)行opengrok.jar,這種方式相對比較靈活产阱,而且可以配置source root 和data root婉称,可以配置多項目,所以建議用這種构蹬。

sudo java -jar opengrok.jar -P -S -v -s /home/xhw241/opengrok-1.0/code -d /var/opengrok/etc -W /var/opengrok/etc/configuration.xml

-P表示為 source root 目錄下的每個一級子目錄生成一個工程王暗。

-S表示搜索并添加 “external” source repositories。

-v表示打印操作的進(jìn)度信息庄敛。

-s表示指定 source root俗壹, source root 就是代碼放置的路徑,指定這個目錄后藻烤,可以在目錄下面建子目錄绷雏,一個子目錄就是對應(yīng)一個project,可以配置多項目怖亭,在搜索界面選擇project涎显。

-d表示指定 data root,這個目錄里面是生成的索引信息兴猩,還有configuration文件期吓,里面放的項目配置信息。這個configuration.xml文件的路徑在tomcat的source目錄里面WEB_INF里面的web.xml里面配置路徑峭跳。

-W表示指定將配置寫到該文件膘婶。

還有更多配置選項可以使用java -jar /path/to/opengrok.jar查看缺前。


第四步:啟動定時任務(wù)更新代碼和索引

通過 crontab -e 建立定時任務(wù) ?

(/bin/bash $PATH/auto_sync.sh 1 > $PATH/cron_log.txt 2>&1)

#! /bin/bash

SRC_PATH="/home/qqq/svn_code"

OpenGrok_PATH="/home/qqq/opengrok-1.0/lib"?

data_root_path = ''your path"

source_root_path = "your path"

? function svn_sync()

? {? ?

? ? #repo forall -c 'git reset --hard; git clean -f -d -x'? ?

? ? #repo sync -j4?

? ? svn update -q

? ? date

? }


? function opengrok_index()

? {

? ? cd $OpenGrok_PATH

? ? #./OpenGrok index

java -jar opengrok.jar -P -S -v -s $source_root_path? -d $data_root_path -W $data_root_path/configuration.xml

? ? date

? }


? function main_sync()

? {

? ? echo "start sync==============================="

? ? dir=$(ls -l? $SRC_PATH |awk '/^d/ {print $NF}')


? ? for i in $dir

do

? ? ? echo $i

? ? ? if [ -d $i ];then

? ? ? ? echo "=================================="

? ? ? ? echo "To be sync branch ==>>>>>>>>>>>>>$i "

? ? ? ? cd $i

? ? ? ? svn_sync

? ? ? ? cd ..

? ? ? else

? ? ? echo "The Folder is not exist"


? ? ? fi

done?


? ? echo "svn sync done, start opengrok"

? ? echo "======================================"

? }


? main_sync

? #opengrok_index

? echo "==========================================="


? /etc/init.d/tomcat8 restart


? echo "End!!!"

這個腳本如果不是root用戶運(yùn)行可能會有權(quán)限問題,可以在基本里面要執(zhí)行的命令前加 echo pwd | sudo -S .... ?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悬襟,一起剝皮案震驚了整個濱河市衅码,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌脊岳,老刑警劉巖逝段,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異割捅,居然都是意外死亡奶躯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門亿驾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嘹黔,“玉大人,你說我怎么就攤上這事莫瞬±苈” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵疼邀,是天一觀的道長喂江。 經(jīng)常有香客問我,道長旁振,這世上最難降的妖魔是什么获询? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮拐袜,結(jié)果婚禮上吉嚣,老公的妹妹穿的比我還像新娘。我一直安慰自己阻肿,他們只是感情好瓦戚,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著丛塌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪畜疾。 梳的紋絲不亂的頭發(fā)上赴邻,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機(jī)與錄音啡捶,去河邊找鬼姥敛。 笑死,一個胖子當(dāng)著我的面吹牛瞎暑,可吹牛的內(nèi)容都是我干的彤敛。 我是一名探鬼主播与帆,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼墨榄!你這毒婦竟也來了玄糟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤袄秩,失蹤者是張志新(化名)和其女友劉穎阵翎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體之剧,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡郭卫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了背稼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贰军。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蟹肘,靈堂內(nèi)的尸體忽然破棺而出词疼,到底是詐尸還是另有隱情,我是刑警寧澤疆前,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布寒跳,位于F島的核電站,受9級特大地震影響竹椒,放射性物質(zhì)發(fā)生泄漏童太。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一胸完、第九天 我趴在偏房一處隱蔽的房頂上張望书释。 院中可真熱鬧,春花似錦赊窥、人聲如沸爆惧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扯再。三九已至,卻和暖如春址遇,著一層夾襖步出監(jiān)牢的瞬間熄阻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工倔约, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留秃殉,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像钾军,于是被迫代替她去往敵國和親鳄袍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容