Интеграция Redmine и Eclipse

Вступление

Логотипы eclipse и redmineБольшую часть времени разработчики проводят в двух местах – в IDE и в багтрекере/системе управления задачами (ну и, естественно, за гуглением/чтением всяких блогов, литературы etc). При этом, как правило, работая над конкретной задачей, разработчик использует весьма небольшое количество файлов проекта и возможностей IDE. Таким образом, все остальное окружение, не затронутое данной конкретной задачей, только отвлекает и сбивает с толку. Помочь решить эту проблему призван замечательный плагин для не менее замечательной IDE Eclipse под названием mylyn.

Суть работы плагина следующая: вы создаете какое-либо задание (точь в точь как в багтрекере), например “Пофиксить баг XXX”, помечаете его как активное и начинаете как обычно над ним работать. При этом mylyn будет внимательно следить какие файлы вы открывали, сколько времени вы проводили над их правкой, какими функциями Eclipse пользовались. И затем на основе накопленной статистики начинает просто напросто часто используемые в данной задаче файлы подсвечивать более ярким и жирным цветом в списке файлов, затемняя неиспользуемые. Вроде даже некоторые элементы интерфейса также скрывает/выделяет, не замечал.  Это и есть основная фича. Кажется очень просто, но на самом деле крайне эффективна т.к. позволяет сконцентрироваться непосредственно над текущей задачей.

Вторая фича – то что задания можно создавать не только непосредственно в Eclipse, можно загружать тикеты напрямую используя вашу систему управления задачами. Мало того, Mylyn позволяет оперировать тикетами в системе управления задачами непосредственно из Eclipse: создавать тикеты, редактировать опции (%выполнения, оцененное время, статус), добавлять комментарии. К тому же он умеет считать затраченное на выполнение задачи время! Для этого используются специальные адаптеры (коннекторы) mylyn для различных систем управления задачами, т.н. “Task Repository Connectors”, которые взаимодействуют с системой через REST или какое то другое API либо вообще парся веб-страничку тикета. Существуют множество коннекторов для распространенных систем, таких как Bugzilla, Jira, Mantiss, Trac и многих других. Причем некоторые из них можно установить непосредственно из интерфейса Eclipse, для чего нужно открыть Window > Show view > Task list , в появившемся блоке списков задач кликнуть по иконке New task > add repository…  > Install more connectors. К сожалению, в этом списке отсутствует коннектор для Redmine, поэтому придется повозиться дополнительно.

Подключение Eclipse mylyn к redmine

Для редмайн так же существует mylyn конектор, его проект расположен на SourceForge . Помимо установки самого коннектора необходимо установить плагин для редмайн. На сайте проекта есть подробная инструкция по установке, я могу далее просто описать свой опыт.

Установка плагина redmine

Довольно простая. Для этого на серверепереходим в директорию с установленным redmine и выполняем

ruby script/plugin install -x http://redmin-mylyncon.svn.sourceforge.net/svnroot/redmin-mylyncon/redmine_mylyn_connector/tags/CURRENT/redmine_mylyn_connector

В общем то все, переходим по адресу /admin/plugins вашего редмайна и видим “Mylyn Connector plugin” – значит все прошло хорошо. Если нет – попробуйте перезапустить Redmine.

UPD 2011.06.03: Помимо установки плагина, нужно включить Redmine REST API. Для этого нужно перейти в Administration -> Settings -> Authentication и поставить галку на Enable REST API.

Для обновления плагина можно воспользоваться командой

ruby script/plugin update

Установка Eclipse mylyn конектора Redmine

Для начала нужно подключить Update site для плагина. Адрес http://redmin-mylyncon.sourceforge.net/update-site/N/ о том как устанавливать дополнения в Eclipse я уже писал в этой статье. Если вкратце – открываем Help > Install New Software > Add в окошке в поле Name вводим что то вроде “Redmine mylyn connector”, в поле Locationhttp://redmin-mylyncon.sourceforge.net/update-site/N/” и жмем ok. Далее после загрузка списка плагинов отмечаем галочкой “Mylyn Connector: Redmine”, щелкаем Next-ы, рестартуем eclipse… Мы уже у финишной черты!

Подключение redmine проектов к mylyn

Теперь мы можем загрузить тикеты из существующего redmine проекта в mylyn и затем обновлять/редактировать их прямо из eclipse. Для этого в табе “Task list” (Window > Show view > Task list если уже забыли) щелкаем по иконке New task > add repository…

добавление redmine репозитория тикетов к mylyn

В этом окошке выбираем появившийся теперь “Redmine”, жмем Next. В следующем окне вводим параметры подключения к веб-серверу Redmine (“репозиторий тикетов” в терминах mylyn).

Настройка подключения mylyn к веб-серверу redmine

Здесь в поле Server вводим адрес, на котором у вас живет redmine, например “http://redmine.example.com/”; поле Label – понятное для вас название этого репозитория (будет показываться в списке доступных репозиториев); User id и Password соответственно ваши логин и пароль от учетки в redmine. Остальные опции можно оставить по умолчаню.

Жмем Finish и попадаем на страницу создания запроса на получение тикетов. По сути эта страница соответствует таковой по адресу “http://redmine.example.com/projects” с фильтрами со страницы “http://redmine.example.com/projects/myproject/issues” – какие задачи загружать с сервера а какие нет.

Выбор тикетов с фильтрами

Выбираем в выпадающем списке “Select a project or create a Cross-Project-Query” какой-либо из проектов вашего redmine (либо оставляем как есть – тогда подгрузятся тикеты для всех проектов). В поле Query title вводим что-то осмысленное, например название проекта. Проверяем фильтры (например можно попросить загружать только тикеты назначенные мне или только открытые тикеты) и жмем Finish

Список загруженных из redmine тикетов в mylyn

Тадам! Думаю не стоит уточнять, что таким образом можно делать несколько запросов к одному репозиторию тикетов.

Теперь щелкаем по любому тикету в списке и попадаем на такую страничку

Окно редактирования параметров тикета mylyn

Как видите, здесь мы можем редактировать любые свойства тикета так же, как если бы мы делали это напрямую через веб-интерфейс редмайна. Дизайн может показаться странным, но со временем привыкаешь.Чтобы сделать задание активным, нужно кликнуть по черному кружочку (на скриншоте обвел красным) и сразу начнется сбор статистики. Все просто!

Удачных экспериментов!

Почитать

Сайт mylyn
Статья в wikipedia
Преимущества mylyn в статье на хабре
Сайт redmine – mylyn коннектора (есть wiki)

12 thoughts on “Интеграция Redmine и Eclipse

  1. Pingback: багтрекер « Эхо блогосферы

    1. P.S. Post author

      О.. Спасибо огромное. Смотрю у меня обновлялка ругается а разбираться лень было. В статье попозже поправлю

      Reply
  2. Borro

    Подключил все по инструкции, в редмайне включил REST, но при попытке добавить новый репозиторий выдает:
    “Redmine REST web service not enabled or invalid CGI-Server configuration”

    Reply
    1. P.S. Post author

      а в редмайне по урлу /admin/plugins есть “Mylyn Connector plugin”?
      У меня там выдает

      Mylyn Connector plugin
      This plugin provides a webservice API for Eclipse Mylyn (RESTful)
      Sven Krzyzak	2.6.2.stable
      Reply
      1. Borro

        Вот у меня.
        Mylyn Connector plugin
        This plugin provides a webservice API for Eclipse Mylyn (RESTful) Sven Krzyzak 2.6.3.stable.423

        Reply
  3. Borro

    В догонку:
    Redmine 1.0.3.devel.4408 (MySQL)
    Mylyn Connector: Redmine 0.1.0.201010112030 net.sf.redmine_mylyn.feature.feature.group

    Наверное потому что у меня майлин не 2.7. поставлю 2.7 и отпишусь.

    Reply
    1. Borro

      Так и не понял к чему написано
      Depends on Redmine 1.0.0 with Mylyn-Plugin(WS-API) 2.7.0.
      Где этот Mylyn-Plugin(WS-API) 2.7.0. ставить…

      Reply
      1. P.S. Post author

        Ой, я инструкцию писал для redmine 0.9. У 1.0 могло что то поменяться – на 1.0 я не пробовал

        >Depends on Redmine 1.0.0 with Mylyn-Plugin(WS-API) 2.7.0.
        >Где этот Mylyn-Plugin(WS-API) 2.7.0. ставить…

        Mylyn-Plugin(WS-API) 2.7.0 ставить в самом редмайне.

        Можете вот почитать http://sourceforge.net/apps/wordpress/redmin-mylyncon/

        Reply
  4. Pingback: Заметки обо всем

  5. salex

    на Eclipse Juno 4.2 и redmine 2.2.3 плагин не рабочий, постоянно ошибки вылетают

    Reply
  6. Alexandr Fukalov

    Добрый день всем! Мы разработали таймер для учета времени в системе Redmine, он доступен для скачивания после короткой регистрации )
    rmclient.org будем очень признательны за использование нашего таймера и помощь в тестировании.

    Reply

Leave a Reply to Станислав Cancel reply

Your email address will not be published. Required fields are marked *