Access Keys:
Skip to content (Access Key - 0)

Cette page présente OpenGrok, un moteur de recherche indexant du code, ainsi qu'un tutorial présentant son installation.

Site officiel : http://hub.opensolaris.org/bin/view/Project+opengrok

OpenGrok est un moteur de recherche facile d'utilisation et rapide permettant d'indexer du code. C'est un projet qui peut être utilisé dans un navigateur (ou en ligne de commande si vous êtes un peu masochistes). La partie graphique est accessible grâce à un simple navigateur web. Pour cela, il vous faudra déployer une archive war sur un serveur d'application tel que Tomcat.
OpenGrok permet de faire de simples recherches ou des recherches plus complexes en se basant sur la syntaxe de Google. Il est possible d'indexer plusieurs projets et d'exécuter des recherches parmi un ou plusieurs projets. Des recherches plus restrictives peuvent être faites pour par exemple n'exécuter les recherches que dans un répertoire donné. La navigation au sein du code est elle aussi possible. L'outil gère aussi la coloration syntaxique, la navigation dans les arborescences projets ... L'indexation des projets peut se faire en utilisant de nombreux outils de versioning tels que Git, Mercurial, SVN, CVS, ... Bref, si vous recherchez un outil pour indexer votre code, c'est sans doute l'outil qu'il vous faut. Après avoir essayé d'autres outils du même genre (et il n'y en a pas beaucoup), d'après moi, aucun n'arrive à la cheville du projet OpenGrok.
Néanmoins, si j'avais une critique à faire à propos de ce projet, ce serait que la documentation n'est pas vraiment à jour ou manque de clarté. La conséquence à cela étant que l'installation est souvent un problème qui fait que l'on abandonne souvent avant même de l'avoir utilisé... C'est la raison pour laquelle je vais vous présenter un tutorial permettant l'installation d'OpenGrok.

Installation sous Linux :

Pour cette installation, j'ai utilisé la version 0.9 d'OpenGrok.

Téléchargement de l'archive :

http://hub.opensolaris.org/bin/view/Project+opengrok/files
Décompressez l'archive dans le répertoire de votre choix. A titre d'exemple, je décompresserai l'archive dans /usr/local/src/opengrok.

Répertoire d'installation :

Nous allons créer le répertoire d'installation d'opengrok. Je préfère séparer le répertoire me permettant d'utiliser OpenGrok du répertoire de décompression (mais j'avoue que cela complexifie un peu l'installation).

  • Le répertoire bin contiendra l'exécutable et les librairies dont dépend OpenGrok.
  • Le répertoire data contiendra les index générés et utilisés par OpenGrok.
  • Le répertoire source contiendra les sources du code à indexer par OpenGrok.

Recopie des fichiers exécutables :

Ce sont ces fichiers que nous utiliserons pour l'indexation et la mise à jour de la webapp.

Ajout d'un projet aux sources indexables :

Admettons que je souhaite ajouter un de mes projets de façon à ce qu'OpenGrok l'index. Pour cela, je vais extraire un projet en utilisant Subversion par une commande similaire à la commande suivante.

Création de la configuration d'OpenGrok :

Nous allons créer le fichier de configuration d'OpenGrok /etc/opengrok/configuration.xml. Ce fichier est utilisé lors de l'indexation et est utilisé par la webapp pour savoir où se situe les index et les noms des projets indexés.
Ce fichier contient le chemin vers les fichiers d'index, le chemin vers les sources à indexés, les projets indexés par OpenGrok.
La commande pour créer le fichier de configuration est la suivante (facile à retenir...) :

Indexation des projets :

Pour indexer vos projets, il vous faut lancer la commande suivante.

Conseil
L'indexation est assez gourmande donc il est conseillé de l'exécuter de nuit.

Déploiement de la WebApp :

Le fichier web.xml de la WebApp définit où se trouve le fichier de configuration d'OpenGrok, vous devez donc le modifier et repackager le war (un simple zip puis un renommage de l'extension suffit).

Voilà la configuration du web.xml correspondant à ce tutorial.

Conseil
Si vous souhaitez ajouter de la sécurité à votre WebApp, je vous conseillerai d'utiliser MemoryRealm (tutorial) qui consiste à configurer un peu ce fichier web.xml en utilisant un rôle particulier correspondant à un rôle défini dans le fichier tomcat-users.xml.

Une fois le fichier web.xml modifié et repackagé dans le fichier source.war, il ne reste plus qu'à déployer le war. Si vous utilisez Tomcat, il suffit de recopier ce fichier dans le répertoire $CATALINA_HOME/webapp.

Notifier la WebApp d'un changement de configuration :

Lorsque vous modifiez le fichier de configuration d'OpenGrok (ajout / suppression de projet, ...), il vous faudra notifier la webapp de ce changement.

Normalement, tout devrait être fonctionnel. Il ne vous reste plus qu'à utiliser votre moteur de recherche http://localhost:8080/source.

  1. Dec 16, 2010

    Anonymous

    Bonjour,

    bon tuto, mais je pense qu'une erreur au niveau du port (dernière ligne) s'est glissée

  2. Dec 17, 2010

    Anonymous

    Merci pour le commentaire ! ça fait toujours plaisir !
    Le port 8080 est correct. Il s'agit bien du port de Tomcat. Le port 2424 est quant à lui un port d'écoute utilisé par OpenGrok.

Adaptavist Theme Builder (4.2.3) Powered by Atlassian Confluence 3.5.5, the Enterprise Wiki