OpenGrok is Awesome

OpenGrok is an awesome and handy tool for analyzing complex software system. As it claims, it is a fast source code search and cross reference engine using famous Lucene. For Android developers, you may have known AndroidXref which is built using OpenGrok.

This short guide shows a minimized steps to get OpenGrok up and running on Mac OS X. I prefers this kind of quick-and-dirty way for browsing source code on my desktop or laptop. Refer to official OpenGrok installation guide if you intent to setup a server instead.

Installation

The most effortless way to install Tomcat is using Homebrew:

$ brew install tomcat

If you have not installed Exuberant Ctags before, you can do so now:

$ brew install ctags

Then you have to download OpenGrok from its official site (I am using 0.12.1):

$ wget -O - http://java.net/projects/opengrok/downloads/download/opengrok-0.12.1.tar.gz | tar xvz

We have to deploy OpenGrok to Tomcat which is installed under /usr/local/Cellar/tomcat (you may need to change the 8.0.17 part depending on the exact Tomcat version you installed):

$ OPENGROK_TOMCAT_BASE=/usr/local/Cellar/tomcat/8.0.17/libexec opengrok-0.12.1/bin/OpenGrok deploy

With default configuration, you should be able to see OpenGrok after starting Tomcat:

$ catalina start
$ open http://localhost:8080/source

You should see OpenGrok page with no source to search.

Indexing Source

Now it's time to index your source:

$ OPENGROK_INSTANCE_BASE=opengrok-0.12.1 opengrok-0.12.1/bin/OpenGrok index /path/to/your/source

Note that OPENGROK_INSTANCE_BASE specifies where to store index data. After you have done with it, stop Tomcat by:

$ catalina stop

That's it. Enjoy your code reading.