Блог - Linux, программирование, Я!

ПрограммированиеИнтеграция 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", в поле Location " http://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)

  1. 2010-08-26 07:33:56 | #

    […] PS пишет: Суть работы плагина следующая: вы создаете какое-либо задание (точь в точь как в багтрекере), например «Пофиксить баг XXX», помечаете его как активное и начинаете как обычно над ним работать. При этом mylyn будет внимательно следить … […]

  2. 2010-09-16 14:18:08 | #

    Изменился URL коннектора для Eclipse 3.6 на
    Update site: http://redmin-mylyncon.sourceforge.net/update-site/N/
    подробнее: http://info.sectorit.net/index.php/component/content/article/10-it/91—ide-eclipse-pdt-

    • 2010-09-20 22:48:55 | #

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

  3. Borro
    2010-11-15 17:17:28 | #

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

    • 2010-11-15 20:27:07 | #

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

      Mylyn Connector plugin
      This plugin provides a webservice API for Eclipse Mylyn (RESTful)
      Sven Krzyzak    2.6.2.stable
      
      • Borro
        2010-11-16 15:22:05 | #

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

  4. Borro
    2010-11-16 15:44:05 | #

    В догонку:
    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 и отпишусь.

    • Borro
      2010-11-16 15:58:42 | #

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

      • 2010-11-16 16:27:14 | #

        Ой, я инструкцию писал для 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/

  5. 2011-05-15 17:34:47 | #

    […] (но, походу, только для локальных хранилищ).Информация: Как добавить репозиторий тикетов Redmine, Официальна инструкция по установке Redmine, тоже стоит […]

  6. salex
    2013-02-23 16:27:15 | #

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

  7. 2013-10-14 18:04:49 | #

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