2010年3月22日月曜日

opengrok: OpenGrok を使う

OpenGrok は Sun 謹製のクロスリファレンスツール。

対応している言語は

  • C/C++
  • Shell Scripts (like ksh, sh)
  • Perl
  • Java, Java Class files, JAR files
  • ELF files
  • troff man pages
  • Zip, Gzip, BZip2, Tar
  • meta language files (like XML, SGML or HTML)

これ以外のファイルでもリファレンスが正しくできないだけで、 全く表示されないということはない。

また、主要なSCM に対応している。

ちょっと使ってみただけだけど lxr と比べて、対応している SCM が多かったりと 高機能な割に導入が簡単で見た目もよい。 あとは Python と Ruby に対応してくれれば... まあ自分で作ればいいか。


以下、opengrok をインストールしたときのメモ。OS は debian-lenny。

sun-java6-jdk, tomcat5.5, tomcat5.5-admin, tomcat5.5-webapps, exuberant-ctags あたりをインストール。

opengrok-0.8.1.tar.gz をダウンロードして、適当に展開。 このディレクトリを ~/opengrok-0.8.1 としておきます。

source.war の deploy:

cd ~/opengrok-0.8.1
sudo ./OpenGrok deploy

/etc/tomcat5.5/policy.d/04webapps.policy でパーミッションを追加:

grant codeBase "file:${catalina.home}/webapps/source/-" {
     permission java.security.AllPermission;
};

grant codeBase "file:${catalina.home}/webapps/source/WEB-INF/lib/-" {
     permission java.security.AllPermission;
};

次。クロスリファレンスしたいソースコードを用意。 このディレクトリを ~/src としておきます。

インデックスを作成:

java -server -Xmx1024m -s ~/src -d ~/ogk-data -W configuration.xml -v
sudo cp configuration.xml /var/opengrok/etc/configuration.xml

あとは tomcat を再起動すれば http://<your-site-url>:port/source/ で表示されるはず。

0 件のコメント:

コメントを投稿