Запуск сторонних программ из Eclipse

Владимир | | Eclipse, Phing, Web разработка.

eclipse cli

Современные IDE буквально «нашпигованы» различными возможностями. Тем не менее, предусмотреть все невозможно и возникают ситуации, когда нужно использовать дополнительные программы. Речь, прежде всего, идет о различных консольных утилитах.

Естественно, гораздо удобнее, запускать эти утилиты прямо из меню IDE, а не из консоли. Эта заметка о том, как добавить такую возможность в Eclipse.

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

В качестве примера рассмотрим запуск Phing (о нем речь шла в прошлой статье).

Формат команды такой:

phing -f mybuildfile.xml mytarget

Сначала идет имя программы, затем имя build файла (mybuildfile.xml) и название задачи которую нужно выполнить (mytarget). Тут предполагается:

1) что система знает, где находится phing (путь указан в переменной PATH), если это не так, то необходимо явно указать путь к нему;

2) вы выполняете команду в папке, в которой находится файл mybuildfile.xml (в противном случае нужно указать его размещение).

Кроме того, поддерживается сокращенный вариант записи команды.

Например, если опустить название файла, то Phing попытается использовать файл build.xml. Название задачи тоже можно не указывать. В этом случае её имя будет взято из атрибута default тега project.

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

Открываем меню Run – External Tools – Open External Tools Dialog…

В левой части окна выбираем пункт Program и нажимаем кнопку «New launch configuration» (обведена зеленым).

В правой части окна указываем:

1) Имя задачи (поле Name).

2) Размещение программы (Location). Я указал абсолютный путь к файлу phing.bat.

3) Рабочую папку (Working Directory). Чтобы её выбрать нажимаем кнопку «Browse Workspace» (обведена синим) и выбираем текущий проект.

4) Нажимаем Apply и закрываем это окно.

Описанные настройки показаны на скриншоте.

external tools thumb

Теперь нажимаем на панели инструментов на стрелку рядом с кнопкой, на которой нарисованы зеленая стрелка и чемодан.

run phing menu

Как видите, в первом пункте меню появилась наша новая команда (Phing).

Теперь добавим возможность запуска произвольной задачи из build файла. Для этого снова открываем Open External Tools Dialog и создаем ещё одну команду (Phing custom). Настройки такие же, только в поле Arguments задаем параметр ${string_prompt}. Его можно выбрать, нажав на кнопку Variables (обведена красным).

external tools custom thumb

После запуска этой команды будет появляться окно, в которое нужно ввести имя задачи.

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

Удачи!

  • Непонятно только как это все организовать.

  • Непонятно только как это все организовать.

  • А что вам не понятно? Задайте конкретный вопрос, и обязательно подскажем.

  • А что вам не понятно? Задайте конкретный вопрос, и обязательно подскажем.

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

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

  • asterix

    Здравствуйте! Спасибо за статью, впринципе до этого дошел сам, но теперь хоть понял что это правильное направление.

    — Есть проект на пхп+javascript+css+etc. вобщем куча файлов, и нужно по мере внесения изменений синхронизировать изменееные файли по фтп с сервером (еклипс работает под виндой).
    — Очень-очень хочется делать это нажатием одной кнопки.

    Я пытался сделать сценарий .cmd который использует встроенный виндовский фтп клиент, но это мне кажется страшным извращением.

    может что-нибцдь подскажете?

  • asterix

    Здравствуйте! Спасибо за статью, впринципе до этого дошел сам, но теперь хоть понял что это правильное направление.

    — Есть проект на пхп+javascript+css+etc. вобщем куча файлов, и нужно по мере внесения изменений синхронизировать изменееные файли по фтп с сервером (еклипс работает под виндой).
    — Очень-очень хочется делать это нажатием одной кнопки.

    Я пытался сделать сценарий .cmd который использует встроенный виндовский фтп клиент, но это мне кажется страшным извращением.

    может что-нибцдь подскажете?

  • использование дополнительных утилитов как никак кстати, вы бьете в корень.я имела представление о Phing, но с вашей помощью понял много нюансов, спасибо, продолжайте в том же духе

  • использование дополнительных утилитов как никак кстати, вы бьете в корень.я имела представление о Phing, но с вашей помощью понял много нюансов, спасибо, продолжайте в том же духе

  • Andrew

    Скажите, а почему phing, а не ant? Запуская phing как external tool я не вижу никаких преимуществ перед ant.

    • phing по-сути тот же ant, портированный под PHP. Преимущества появляются когда вам нужно написать свою задачу и удобнее это сделать на PHP, а не на Java.

  • Andrew

    Скажите, а почему phing, а не ant? Запуская phing как external tool я не вижу никаких преимуществ перед ant.

    • phing по-сути тот же ant, портированный под PHP. Преимущества появляются когда вам нужно написать свою задачу и удобнее это сделать на PHP, а не на Java.