OpenGrok est un des nombreux sous projets OpenSolaris. Il est utilisé pour naviguer et faire des recherches dans le code d’OpenSolaris, on peut voir une démonstration sur : http://cvs.opensolaris.org/source/ (on parle de cross referencer).
Note: OpenGrok est multiplateforme et son utilisation ne se limite pas à Solaris.
Tout d’abord, vous devez installer la JDK 1.5 ainsi que Tomcat (ou tout autre conteneur de servlets)
On peut télécharger OpenGrok sur la page du projet : http://www.opensolaris.org/os/project/opengrok/.
gunzip opengrok-0.3.tar.gz tar -xvf opengrok-0.3.tar cd opengrok-0.3
On suppose que les données sont dans ~/src/projet et qu’on va mettre le résultat du traitement dans ~/tools/opengrok/projet :
java -jar opengrok.jar -s ~/src/projet ~/tools/opengrok/projet
Si vous avez une erreur de type : Error: executing ctags! null, Ajoutez l’option -c <path vers ctags>, exemple :
java -jar opengrok.jar -c /usr/bin/exuberant-ctags -s /tmp/source/ /tmp/opengrok/
Si vous souhaitez disposer des fonctionnalités liés à Subversion, vous devez compiler le support javahl, et copier les fichiers libsvnjavahl* dans le répertoire jre/lib/i386 de votre JDK.
Il ne nous reste plus qu’à préparer le déploiement, pour cela, nous allons éditer le fichier web.xml. Tout d’abord, nous allons l’extraire du fichier source.war
unzip source.war WEB-INF/web.xml
Puis, on édite le fichier WEB-INF/web.xml, et on modifie les valeurs DATA_ROOT et SRC_ROOT pour obtenir (voir valeur dans les tags param-value):
<context-param>
<param-name>DATA_ROOT</param-name>
<param-value>/tmp/opengrok/</param-value>
<description>REQUIRED: Full path of the directory where data files generated by OpenGrok are stored</description>
</context-param>
<context-param>
<param-name>SRC_ROOT</param-name>
<param-value>/tmp/source</param-value>
<description>REQUIRED: Full path to source tree</description>
</context-param>
Puis on remet le fichier WEB-INF/web.xml dans l’archive source.war :
zip -u source.war WEB-INF/web.xml
Il suffit ensuite de lancer un serveur tomcat et de recopier le fichier source.war dans le répertoire webapps de tomcat. Exemple :
cp source.war /opt/tomcat5/webapps
Pour finir, on peut aller voir le résultat dans son navigateur : http://localhost:8080/source/
Pour compiler OpenGrok, vous avez besoin de Ant ainsi que de la librairie JFlex
Il faut d’abord copier le fichier JFlex.jar dans le répertoire lib de ant :
cp jflex-1.4.1/lib/JFlex.jar $ANT_HOME/lib
on peut ensuite compiler OpenGrok :
ant build