OpenGrok
http://opengrok.github.io/OpenGrok/
ソースコード内検索/閲覧に超便利. 関数や変数をリンクで辿れるし.
Webサーバ(tomcatのWebApp)として動作する.
そこそこの規模でソフトウェア開発する場合は導入しておいた方がいいと思う.
ただ本家README見てもインストール手順がいまいちわかりづらいのでメモ.
(英語が苦手なだけかもしれないが)
以下 Ubunt14.04 に導入する手順.
http://bytesthink.com/blog/?p=184 が参考になった.
OpenGrokに必要なパッケージのインストール
$> sudo apt-get install libtomcat7-java
# tomcat6以前を入れている場合、これを先にインストール.
# しないとtomcat7-commonとの依存関係でtomcat7をインストールできない.
# これをインストールすると同時にtomcat6はアンインストールされるので注意.
$> sudo apt-get install openjdk-7-jdk ant jflex ctags tomcat7
OpenGrokバイナリ版ダウンロード.
$> wget http://java.net/projects/opengrok/downloads/download/opengrok-0.12.1.tar.gz
$> tar -xvzf opengrok-0.12.1.tar.gz
以下、解凍ディレクトリパス opengok-0.12.1/ を [OPENGROK_DIR] と表記する。
lib/以下にJFlex.jarのsymlinkを配置.
$> cd [OPENGROK_DIR]/lib/
$> ln -snf /usr/share/java/JFlex.jar JFlex.jar
OpenGrokのデプロイ
$> cd [OPENGROK_DIR]/bin/
$> sudo ./OpenGrok deploy
$> sudo ./etc/init.d/tomcat7 restart
一旦ブラウザで表示確認
http://localhost:8080/source/
で表示されればOK.
この時点でコードも検索インデックスも作成されていないので、
検索を実行すると、以下のようなエラーメッセージがでる.
dataRoot parameter is not set in configuration.xml!
OpenGrokに必要なディレクトリの作成.
ソースコードや検索インデックス保管場所等を作ってあげなければならない.
$> sudo mkdir -m 777 -p /var/opengrok/src/ << ソースコード置き場.
$> sudo mkdir -m 777 -p /var/opengrok/etc/ << 設定ファイル置き場.
$> sudo mkdir -m 777 -p /var/opengrok/data/ << 検索インデックス等の置き場.
閲覧対象のソースコードは/var/opengrok/src以下に置く.
ソースコードディレクトリのシンボリックリンクでもOK.
OpenGrokのインデックス作成
$> cd [OPENGROK_DIR]/bin/
$> sudo ./OpenGrok index
/var/opengrok/etc, /var/opengrok/data以下にファイルが生成される.
※ 新しくソースコード追加するたびにこの操作が必要.
## もう一回ブラウザで表示確認
検索を実行して、該当するコード行一覧が表示されれば設定OK.
完了.
## 参考
http://opengrok.github.io/OpenGrok/
http://askubuntu.com/questions/556954/solvedtomcat7-installation-failed-via-apt-get-on-ubuntu-14-04