OpenGrok: браузер исходников

OpenGrok — это свободное программное обеспечение, предназначенное для индексации исходного программного кода и веб-приложение для поиска и навигации по проиндексированному исходному коду (wikipedia). В некоторых отделах компании, где я работаю, этот инструмент используется разработчиками для быстрого доступа к исходникам (нарядку с Hudson для удаленной компиляции, но о нем в следующий раз).

  • Для многих языков программирования поддерживается подсветка синтаксиса и распознавание мест объявления и использования идентификаторов (переменных, имён классов, методов, и так далее).
  • Интегрируется с распространёнными системами контроля версий, среди которых CVS, SVN, Git, Mercurial и другие.
  • Возможность просмотра исторических версий и аннотированного историей кода, поиск по истории.
  • Инкрементальное обновление индекса — позволяет встраивать индексатор в пост-коммитные хуки в системах контроля версий.
  • Проект написан на языке программирования Java и, как следствие, платформо-независим — работает под Windows и многими вариантами Unix.

Примеры публично-доступных репозиториев кода, с установленным OpenGrok

OpenGrok’у нужен сервлет-сервер (например, GlassFish или Tomcat), в этом примере я буду использовать Apache Tomcat 6 и Red Hat Enterprise Linux 4.

Скачав бинарники Tomcat 6.0.26 нужно лишь распаковать .gz-файл и запустить startup-скрипт:

tar zvxf apache_tomcat_6.0.26.tar.gz

/apache_tomcat_6.0.26/bin/startup.sh

Возможно вам нужно будет указать путь к java в переменной JRE_HOME:

setenv JRE_HOME /ваш/путь/к/java

Остальные переменные заполняются значениями автоматически, маловероятно, но возможно вам придется поправить и их – аналогично.

Намного удобнее запускать Tomcat как демон. Для этого после распаковки gz-файла перейдите в директорию bin, в ней распакуйте файл jsvc.tar.gz, скомпилируйте утилиту jsvc и скопируйте ее обратно в bin:

cd $CATALINA_HOME/bin
tar xvfz jsvc.tar.gz
cd jsvc-src
autoconf
./configure
make
cp jsvc ..
cd ..

Находясь в директории bin нужно запустить Tomcat:

./bin/jsvc -cp ./bin/bootstrap.jar \

-outfile ./logs/catalina.out -errfile ./logs/catalina.err \

org.apache.catalina.startup.Bootstrap

Как вы видите, параметрами -outfile и -errfile можно указать лог-файл и файл, куда будут сыпаться ошибки.

Файл $CATALINA_HOME/bin/jsvc/native/tomcat.sh можно использовать как пример для внесения правок в /etc/init.d, чтобы сервер запускался при старте системы.

По умолчанию используется порт 8080, файл настройки серверов $CATALINA_HOME/conf/server.xml.

В браузере по адресу localhost:8080 (или данные, указанные вами в server.xml) можно увидеть следующее.

Так или иначе, следует проверить лог и файл ошибок.

Теперь нужно скачать OpenGrok. Я скачал бинарники и распаковал в соседнюю директорию. Этой системе требуется Exuberant Ctags, их я тоже скачал в соседнюю директорию, скомпилировал и, задав несколько переменных окружения, запустил OpenGrok:

tar zvxf ctags_5.8.tar.gz

cd ctags_5.8

mkdir /opt/tools/servers/exctags/5.8

./configure --prefix=/opt/tools/servers/exctags/5.8

make

make install

Теперь осталось лишь задать несколько переменных:

setenv OPENGROK_INSTANCE_BASE /ваш/путь/к/opengrok

setenv EXUBERANT_CTAGS /ваш/путь/к/exuberant_ctags (путь к бинарному файлу)

setenv JAVA_HOME /ваш/путь/к/java

setenv OPENGROK_TOMCAT_BASE /ваш/путь/к/tomcat

cd opengrok/bin

./OpenGrok deploy

Последняя команда развернет директорию source в корне вашего tomcat-сервера, так что если вы все сделали верно, то по адресу localhost:8080/source можно будет увидеть радостное приветствие OpenGrok’а.

Теперь можно проверить его в действии:

./OpenGrok index /ваш/путь/к/исходным/файлам

После чего по тому же адресу можно будет увидеть страницу поиска и ссылку на полное дерево проиндексированных файлов.

Для нашей команды я сделал простенький bash-скрипт, который задает все необходимые переменные, индексирует указанный путь и выводить время, потраченное на индексацию и размер проиндексированной директории.

#!/bin/bash

OPENGROK_INSTANCE_BASE="/opt/tools/servers/opengrok/0.9"

EXUBERANT_CTAGS="/opt/tools/servers/exctags/5.8/bin/ctags"

JAVA_HOME="/app/jdk/1.6.0"

OPENGROK_TOMCAT_BASE="/opt/tools/servers/tomcat6"

SRC="/opt/tools/servers/exctags/distro"

echo "Path to OpenGrok is set to $OPENGROK_INSTANCE_BASE"

echo "Path to Exiberant Ctags is set to $EXUBERANT_CTAGS"

echo "Path to java is set to $JAVA_HOME"

echo "Path to Tomcat is set to $OPENGROK_TOMCAT_BASE"

echo "Path to source-code directory to index is set to $SRC"

export OPENGROK_INSTANCE_BASE=$OPENGROK_INSTANCE_BASE

export EXUBERANT_CTAGS=$EXUBERANT_CTAGS

export JAVA_HOME=$JAVA_HOME

export OPENGROK_TOMCAT_BASE=$OPENGROK_TOMCAT_BASE

start_time=$(date +%s)

./OpenGrok index $SRC

end_time=$(date +%s)

echo "Elapsed time: $(($end_time-$start_time)) seconds."

echo "The size of indexed directory is: "

du -sh $SRC

В этой заметке описан самый простой и быстрый способ поднять OpenGrok за несколько минут, при этом не вдаваясь в особенности системы. Я советую ознакомиться с документацией на официальных сайтах.

opengrok
4 июня, 23:27
1057

Комментарии

Броузер на скриншотах, как же он скучен. Вы видимо его чисто для скриншотов используете.
Нормальный быстрый старый фаерфокс.
Это рабочий sun-терминал, GUI-софт вообще почти не используется

Оставьте свой комментарий