LoginSignup
32

More than 5 years have passed since last update.

OpenGrokでAndroidソースコード検索

Posted at

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.xml
<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.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をいれる。
og_basic.png

キタワー:.。.:・゚(n'∀')η゚・:.。.:!!
og_cm10_2.png

他のソースを追加する場合

/var/opengrok/src/
にソースを追加
cd ~/og/opengrok-0.11.1-src/
sudo ./OpenGrok update
をすると、topページのIn Project(s)に、「/var/opengrok/src/」に配置したフォルダ名で追加される。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32