В 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. Но можно и просто запаковать всю папку с проектом из воркспейса и отправить по почте. Не нужно присылать нам бинарные джарки и джарки с источниками.
Важно! Очень рекомендуем выполнять задание самостоятельно, в данной конкретной задаче не стоит делать клоны каких либо решений, это сразу бросается в глаза.
6 Comments
comments.show.hideNov 15, 2015
Anonymous
Какая проблема - из одного воркспейса можно запускать одновременно сколько угодно приложений - не пойму что вам не нравится - вы хотите запускать их все одной кнопкой?
Nov 16, 2015
Dmitry Savenko
Смысл задания в том, чтобы упорядочить и автоматизировать процесс запуска нескольких конфигураций в случае, когда вам нужно регулярно с ними работать (как в приведенном примере с разработкой клиент-серверного приложения). Да, это включает в себя и запуск всех одной кнопкой.
May 19, 2016
Anonymous
Здравствуйте,
Занимаюсь в данный момент этим тестовым заданием.
Есть несколько косметических замечаний к содержанию:
May 20, 2016
Andrey Sobolev
Здравствуйте,
Большое спасибо за комментарии, я поправил ссылки на статьи для Eclipse Mars (4.5) они указывали на Eclipse indigo (3.7).
Я думаю нет необходимости в указании версии Eclipse, можно писать как для последней так и не очень, Eclipse API в этой области более чем стабилен.
Еще раз спасибо за комментарии.
Андрей.
May 21, 2016
Anonymous
Андрей, спасибо за оперативный ответ. Раз уж тут действительно работает обратная связь, то задам вопрос.
Как мне уже стало известно, новая launch конфигурация может быть добавлена как в Run Configurations, так и в Debug Configurations (да и в любые другие возможно новые режимы).
Я правильно понимаю, что в данном задании можно ограничиться композитной конфигурацией только для запуска (т.е. Run, как на скриншоте)?
Андрей К.
May 25, 2016
Anonymous
Андрей, вопрос больше не актуален. Посмотрел на поведение Launch Group в CDT. Действительно, имеет смысл уметь работать во всех режимах.