Skip to end of metadata
Go to start of metadata

В Eclipse существует понятие launch-конфигураций – настроек запуска проектов из workspace'а. 

Эти launch-конфигурации имеют разные свойства в зависимости от типа запускаемых приложений (java-приложение, Eclipse plugins, JUnit-тесты). Выглядит это примерно так:

Здесь мы видим несколько разных типов launch-конфигураций и произвольное количество конкретных экземпляров этих типов.

Иногда возникает потребность запускать несколько приложений из одного workspace'а – например, мы пишем клиент-серверное приложение и хотим одновременно запускать и сервер, и клиента. Для таких целей было бы удобно иметь новый тип launch-конфигураций – composite, который бы позволял создавать новую конфигурацию, ссылающуюся на существующие. При этом при запуске этой композитной конфигурации должны запускаться все конфигурации, на которые она ссылается.

Задание – реализовать eclipse-plugin('ы), добавляющие такую новую launch-конфигурацию. Детали поведения, пользовательского интерфейса и обработки ошибок отдаются на усмотрение разработчику. Главное, что мы хотим увидеть – законченную удобную вещь, сделанную как для очень придирчивого клиента.

Входная точка в документации Eclipse по разработке plug-in'ов тут – Platform Plug-in Development Guide.
Информацию о том как добавлять свои launch-конфигурации в eclipse можно найти здесь – Program debug and launch support.

Важно! Пожалуйста, отправляйте свое задание в виде полноценного Eclipse-проекта со всеми проектными файлами (например, .project). Лучшим вариантом будет попросить у нас (job@xored.com) доступ на наш Git сервер и запушить проект туда. В этом случае, убедитесь, что актуальный код находится в ветке master. Но можно и просто запаковать всю папку с проектом из воркспейса и отправить по почте. Не нужно присылать нам бинарные джарки и джарки с источниками.

Важно! Очень рекомендуем выполнять задание самостоятельно, в данной конкретной задаче не стоит делать клоны каких либо решений, это сразу бросается в глаза.

Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Nov 15, 2015

    Anonymous

    Какая проблема - из одного воркспейса можно запускать одновременно сколько угодно приложений - не пойму что вам не нравится - вы хотите запускать их все одной кнопкой?

    1. Nov 16, 2015

      Смысл задания в том, чтобы упорядочить и автоматизировать процесс запуска нескольких конфигураций в случае, когда вам нужно регулярно с ними работать (как в приведенном примере с разработкой клиент-серверного приложения). Да, это включает в себя и запуск всех одной кнопкой.

  2. May 19, 2016

    Anonymous

    Здравствуйте,

    Занимаюсь в данный момент этим тестовым заданием.

    Есть несколько косметических замечаний к содержанию:

    1. Последние 2 ссылки на документацию Eclipse не ведут к ожидаемым статьям. Возможно стоит просто оставить названия нужных статей без ссылок.
    2. В тексте задания возможно стоит явно сказать о том, что требуемый плагин можно спокойно писать для самой последней версии Eclipse, если, конечно, действительно не требуется какая-то совместимость с определенной версией Eclipse (полагаю проблемы совместимости Eclipse и плагинов существуют).
    1. May 20, 2016

      Здравствуйте,

      Большое спасибо за комментарии, я поправил ссылки на статьи для Eclipse Mars (4.5) они указывали на Eclipse indigo (3.7).

      Я думаю нет необходимости в указании версии Eclipse, можно писать как для последней так и не очень, Eclipse API в этой области более чем стабилен.

      Еще раз спасибо за комментарии.

      Андрей.

      1. May 21, 2016

        Anonymous

        Андрей, спасибо за оперативный ответ. Раз уж тут действительно работает обратная связь, то задам вопрос.

        Как мне уже стало известно, новая launch конфигурация может быть добавлена как в Run Configurations, так и в Debug Configurations (да и в любые другие возможно новые режимы).

        Я правильно понимаю, что в данном задании можно ограничиться композитной конфигурацией только для запуска (т.е. Run, как на скриншоте)?

        Андрей К.

      2. May 25, 2016

        Anonymous

        Андрей, вопрос больше не актуален. Посмотрел на поведение Launch Group в CDT. Действительно, имеет смысл уметь работать во всех режимах.