#OpenGrokでAndroidソースコード検索
Androidソースコード検索サービス
https://sites.google.com/site/devcollaboration/codesearch
これ便利ですよね。
好きなソースで検索したいですよね。
ということで、OpenGrok設置設定メモ。
誰かのページのコピペよせあつめでs。
#手順
##前提環境
VMWare, Ubuntu 12.04
##必要なソフトのインストール
sudo apt-get install ant exuberant-ctags tomcat6 tomcat6-admin jflex
##ソースのダウンロード
mkdir ~/og
cd ~/og
wget https://java.net/projects/opengrok/downloads/download/opengrok-0.11.1-src.tar.gz
wget http://jflex.de/jflex-1.4.3.tar.gz
tar xvzf jflex-1.4.3.tar.gz
tar xvzf opengrok-0.11.1-src.tar.gz
cp jflex-1.4.3/lib/JFlex.jar opengrok-0.11.1-src/lib/
cd ~/og/opengrok-0.11.1-src/
##設定ファイルの修正
$ ls /usr/lib/jvm
java-1.6.0-openjdk-amd64
java-6-openjdk-common
jdk1.6.0_45
java-6-openjdk-amd64
java-7-openjdk-amd64
上記にある適当なjavaを★に追加。
vi OpenGrok
431 for dir in /usr/lib/jvm/sun-jdk-1.6 \
432 /usr/lib/jvm/sun-jre-1.6 \
433 /usr/lib/jvm/java-6-openjdk-amd64 \ ←★追加
434 /usr/lib/jvm/java-6-sun
メモリを増量 (./OpenGrok index,update時にメモリ不足になる場合)
vi OpenGrok
261 # OPTIONAL: JVM Options
262 JAVA_OPTS="${JAVA_OPTS:--Xmx6144m}" ←★2048から6144に書き換え
##OpenGrokのコンパイル
cd ~/og/opengrok-0.11.1-src/
ant
##tomcatにweb app設置
sudo ./OpenGrok deploy
##認証を追加したい場合(ここではお試しでBASIC認証を追加)
sudo vi /var/lib/tomcat6/webapps/source/WEB-INF/web.xml
###<web-app>
直下に以下を追加
<web-app>
...ここから追加
<security-constraint>
<web-resource-collection>
<web-resource-name>
Authentication of BasicAuth
</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>basic</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>UserDatabaseRealm</realm-name>
</login-config>
ここまで追加...
</web-app>
###ユーザーの追加
sudo vi /etc/tomcat6/tomcat-users.xml
<tomcat-users>
<role rolename="basic"/> ←★追加
<user username="test" password="testpassword" roles="basic"/> ←★追加
</tomcat-users>
###tomcatの再起動
sudo /etc/init.d/tomcat6 restart
##検索したいデータの設置(ここではCyanogenMod)
mkdir -p ~/cm/cm-10.2
cd ~/cm/cm-10.2
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.2
repo sync
mv .repo ../
sudo mv cm-10.2 /var/opengrok/src/
sudo chown root:root /var/opengrok/src/cm-10.2 -R ←これいらないかも
##初回のインデックシング
cd ~/og/opengrok-0.11.1-src/
sudo ./OpenGrok index
~完了するまでしばらく放置~
##2回目以降のインデックシング (新しいソースを置いた場合や、index処理でエラーで落ちた場合)
cd ~/og/opengrok-0.11.1-src/
sudo ./OpenGrok update
##できあがりの確認
vitrual machineのIPを指定して、ポート8080の/sourceにアクセス。
(VM内なら、http://localhost:8080/source/)
お試しで設定した認証がかかっているので、ID/PASSをいれる。
##他のソースを追加する場合
/var/opengrok/src/
にソースを追加
cd ~/og/opengrok-0.11.1-src/
sudo ./OpenGrok update
をすると、topページのIn Project(s)に、「/var/opengrok/src/」に配置したフォルダ名で追加される。