Разработка программного обеспечения для UNIX с помощью EclipseИсточник: ibm Крис Херборт, внештатный сотрудник, независимый писатель
Повысьте производительность при работе с программным кодом, используя выделение цветом синтаксиса языка программирования, возможности автоматического завершения кода и другие функции Eclipse. Eclipse является превосходной интегрированной средой разработки (Integrated Development Environment - IDE) с открытым исходным кодом, которая имеет множество полезных возможностей. Eclipse работает на любой UNIX-платформе, например, на Linux, Solaris, AIX и HP-UX, с Java Runtime Environment (JRE) версии 1.4 или более новой, и библиотекой SWT. В Eclipse достаточно легко создать новый проект или импортировать уже готовый Eclipse-проект, но как внедрить в эту IDE уже написанный сторонний программный код? И что делать, если необходимо скомпилировать проект, не модифицируя при этом его старый makefile или конфигурационный сценарий - наиболее распространенные способы сборки программного обеспечения в UNIX? В статье даются ответы на эти вопросы. Раньше, в течение длительного времени разработка программного обеспечения в UNIX выполнялась с использованием любимого текстового редактора и инструментов командной строки, например, Работа с Eclipse позволяет использовать преимущества графического интерфейса, редакторов, которые могут выделять цветом синтаксис языка программирования, автозавершение программного кода (и дополнительные комбинации клавиш в стиле EMACS); кроме того, Eclipse - это общая платформа разработки программного обеспечения для различных интерпретируемых или компилируемых языков программирования. Перенос среды разработки с традиционных UNIX-редакторов, командной строки или системы makefile в интегрированную среду типа Eclipse может оказаться непростойзадачей, поскольку нет уверенности в том, что производительность труда программиста не уменьшится, и можно ли будет перенести уже существующий программный код в IDE. Кроме того, для компиляции проекта в IDE с графическим интерфейсом пользователя, возможно, придется модифицировать его код. К счастью, благодаря гибкости Eclipse для переноса уже существующего программного кода в IDE существует несколько вариантов. В этой статье будет рассмотрено три различных способа переноса UNIX-кода в Eclipse: из файловой системы, из zip-архива, и CVS-репозитария. Также будет рассмотрено, как использовать систему сборки Ant (несмотря на ее репутацию как "заточенного" под Java™ инструмента для сборки приложений) для адаптации существующего makefile или конфигурационного сценария к Eclipse. Для работы с этой статьей необходимо несколько инструментов. Все, что используется в этой статье, либо доступно в виде бесплатных исходных кодов, например Eclipse IDE, либо может быть взято со стороны, например готовые программы, которые переносятся в IDE и компилируются. Если Eclipse IDE до сих пор не установлен на используемой системе (некоторые дистрибутивы Linux по умолчанию содержат эту IDE), посетите сайт проекта Eclipse (см. раздел Ресурсы) и загрузите Eclipse со средой разработки на Java. Несмотря на то, что эта статья рассматривает обычный C-проект, при его сборке понадобится часть Java Development Kit (JDK). Нам понадобится пакет "Eclipse SDK" или пакеты "Platform Runtime Binary" и "JDT Runtime Binary" (если есть желание сэкономить немного пространства на диске за счет увеличения времени, которое тратится на две загрузки и процедуры установки). Далее нам понадобится модуль Eclipse C/C++ Development Tools (инструменты для разработки на С/С++ - CDT). Можно загрузить эти пакеты по ссылке в разделе "Ресурсы" для установки CDT (см. рисунок 1) или использовать механизм обновлений. В случае отсутствия опыта работы с Eclipse "поиграйте" немного с пользовательским интерфейсом и пройдите пару учебных курсов в online-справке, чтобы получить общие представления о том, как работает Eclipse и каковы возможности этой среды. И, в заключение, нам понадобятся один-два проекта, которые нужно будет перенести в Eclipse. Для демонстрации импортирования данных из файловой системы (и сборки программного обеспечения, которое использует конфигурационные сценарии) в этой статье используется GNU-библиотека Eclipse и уже существующий программный код Eclipse может вызвать некоторое замешательство у людей, которые переходят на него с командной строки или другой IDE. В отличие от текстового редактора и команды Формально, если создать в Eclipse пустой проект и поместить дополнительные файлы в каталог этого проекта, а затем обновить этот проект в Eclipse, то IDE обнаружит и распознает эти файлы. При помощи Eclipse легко импортировать файлы. В следующих разделах будет показано, как можно создать пустой проект, и три различных способа перенести существующий программный код в этот проект (и, следовательно, в царство Eclipse). Импортирование исходного кода будет выполняться из следующих трех различных источников:
Первые два варианта (файловая система и zip-архив) похожи, поэтому используйте наиболее подходящий для конкретной ситуации вариант. Импортирование из CVS-репозитария требуется для программистов, которые работают в команде и используют CVS в качестве системы управления версиями (source control system). При помощи Eclipse можно синхронизировать свои изменения в программном коде с изменениями, сделанными другими участниками команды. Существуют и другие системы управления версиями, например Subversion и Perforce (см. раздел Ресурсы для ссылки на страницу плагинов к Eclipse.) Предположим, что уже имеется какой-то написанный программный код. Чтобы оценить рассматриваемую IDE (и, возможно, продолжить затем работу с проектом в более комфортабельной среде разработки) необходимо собрать этот программный код в Eclipse. Сначала нужно создать новый проект, в который будет импортироваться программный код. Воспользуемся меню File > New > Project для отображения Мастера создания нового проекта (показан на рисунке 2) и выберем обычный проект (Simple > Project), а потом укажем его название. Проект будет сохранен в рабочем каталоге по умолчанию; не следует перемещать его в какой-либо другой каталог. Рисунок 2. Мастер создания нового проекта поддерживает различные типы проектов Импорт программного кода из файловой системы Импортировать программный код в Eclipse можно при помощи Мастера импорта (File > Import), как показано на рисунке 3. Нужно выбрать источник File System (файловая система), а затем нажать кнопку Next для выбора каталога, из которого будет производиться импорт. Рисунок 3. Импорт из каталога в файловой системе После того как будет выбран каталог, Eclipse представит список подкаталогов (рисунок 4). Перейдем на подкаталог, чтобы узнать список файлов, содержащихся в нем. Отмеченные файлы будут импортированы в проект Eclipse, поэтому данное окно диалога можно использовать для поэлементного выбора нужных ресурсов. После того как нужные файлы и каталоги будут выбраны (в данном случае я просто выбрал корневой каталог и оставил в нем все выделенным), нужно нажать на кнопку Finish, и Eclipse скопирует их в проект. Рисунок 4. Выбор файлов и каталогов, которые будут импортированы
Когда файлы и каталоги будут импортированы, все они отобразятся в окне проекта (рисунок 5). На этом этапе работа закончена; можно переходить к разделу Компиляция в Eclipse. Рисунок 5. Проект теперь содержит файлы! Импорт программного кода из архива Выполнять импортирование исходного кода из zip-архива так же просто, как импортировать из файловой системы. В Мастере импортирования (File > Import), нужно выбрать источник "Archive file" ("Архивные файлы"), как показано на рисунке 6; затем выбрать zip-файл, содержащий исходный код для импортирования. Рисунок 6. Импорт исходного кода из zip-архива
После того как будет выбран zip-архив, Eclipse выведет список файлов и каталогов, содержащихся в нем (рисунок 7). Используем это окно диалога для выбора (выделения) файлов и каталогов, которые нужно импортировать; когда завершим выбор, снова нажмем кнопку Finish. Eclipse извлечет файлы из архива и добавит их в проект. Рисунок 7. Выбор файлов и каталогов, которые будут импортированы
После того как файлы и каталоги будут импортированы, они будут показаны в окне проекта (рисунок 8). На этом этапе работа закончена; можно переходить к разделу Компиляция в Eclipse Рисунок 8. Проект с импортированными файлами
Импортирование программного кода из CVS Множество проектов разработки ПО используют систему управления версиями CVS. Eclipse имеет встроенную поддержку импортирования программного кода из CVS-серверов. В Мастере импорта (File > Import) в качестве источника импорта необходимо выбрать "Checkout Projects from CVS" ("Извлечь проект из CVS") (рисунок 9) и нажать кнопку Next для продолжения. Рисунок 9. Импорт из CVS-репозитария
В качестве репозитария с исходным кодом можно выбрать уже настроенный CVS-сервер или создать новое местоположение репозитария (рисунок 10). В этом примере будет использоваться проект, загруженный с SourceForge.net, поэтому надо выбрать "Create a new repository location" ("Создать новое местоположение репозитария") и нажать кнопку Next, чтобы перейти к внесению подробной информации о новом репозитарии. Рисунок 10. Можно выбрать уже настроенный CVS-репозитарий или настроить новый Необходимо задать имя компьютера, который будет CVS-сервером, путь к CVS-репозитарию и информацию для аутентификации (рисунок 11); все эти данные могут быть получены на Web-сайте проекта или у администратора местного CVS. Рисунок 11. Ввод информации о CVS-сервере Нажмите на кнопку Next и переходите к выбору CVS-модуля (или проекта), который требуется импортировать (рисунок 12). Если точное имя неизвестно, нужно выбрать "Use an existing module" ("Использовать существующий модуль"); тогда Eclipse отправит запрос к CVS-серверу на предмет списка доступных модулей. Чтобы начать загрузку файлов модуля, нужно нажать кнопку Finish. Если уже существует проект с тем же самым именем, что и у модуля, который будет загружен, то при нажатии на кнопку Finish Eclipse выведет предупреждение о перезаписи. Перезапись проекта в такой ситуации - необратимое действие, так что будьте осторожны. После того как файлы и каталоги будут импортированы, они будут показаны в окне проекта (рисунок 13). Рисунок 13. Новый проект, заполненный CVS-данными Заключение по импортированию программного кода Перед тем как импортировать программный код в Eclipse, необходимо создать пустой проект. Этот проект будет контейнером для импортируемого кода. Если программный код находится на файловой системе, с которой можно произвести чтение (файловая система на используемой рабочей станции либо сетевая файловая система), то его можно импортировать напрямую в рабочий каталог Eclipse. Если программный код находится в zip-архиве, загруженном из интернета или полученном от другого разработчика, Eclipse может самостоятельно извлечь файлы из архива и импортировать программный код. Если код находится в CVS-репозитарии, Eclipse может подсоединиться к CVS-серверу и импортировать программный код, сохраняя при этом возможность контроля версий. После того как программный код был импортирован в проект Eclipse, хотелось бы получить возможность выполнять с помощью этого кода разные полезные операции. Открыть файл двойным щелчком мыши для редактирования в редакторе - это, конечно, замечательно, но как скомпилировать этот файл? В Eclipse при создании нового проекта доступно два основных варианта сборки проекта: в проекте "Managed Make" сборка приложения будет выполняться автоматически; в проекте "Standard Make" для C/C++ сборка приложения будет осуществляться с использованием утилиты Однако при импортировании уже существующего проекта ситуация немного усложняется. У уже написанных проектов есть свои процедуры сборки, которые могут быть очень сложными и плохо приспособленными для IDE. С другой стороны, скорее всего уже написанный проект можно скомпилировать без особых проблем - понадобится только "достучаться" из Eclipse до процедуры сборки импортируемого проекта. В данной ситуации может использоваться утилита Ant, предоставляемая как компонент среды разработки Java. Ant - это достаточно гибкая утилита (как и традиционная команда И еще одно замечание о Eclipse. При написании и компилировании программ Eclipse создает схему (вид Outline) каждого файла с исходным кодом. В схеме показаны все подключенные заголовочные файлы, которые прописаны в файле с исходным кодом, а также все определения символов из этого файла. Как только в схеме отобразятся используемые заголовочные файлы, Eclipse проиндексирует их; после этого для символов, определенных в этих заголовочных файлах, будет доступно автозавершение. Например, если ввести Сборка с использованием существующего makefile Утилита unzip, импортированная нами ранее, является бесплатным распаковщиком zip-архивов, созданным давным-давно компанией PK-WARE. Желательно, чтобы эта программа была установлена на используемой UNIX-системе, поскольку zip-архивы часто используются при распространении файлов через интернет. Программный код использует makefile (находится в одном из каталогов UNIX) для компиляции и установки исполняемых файлов. Makefile хотя и имеет множество различных, иногда весьма странных (например "wombat") UNIX-версий, представляет собой определенную проблему. Вызывать makefile следует из главного исходного каталога, а не из UNIX-подкаталога:
Если нужно скомпилировать извлеченный исходный код при помощи Eclipse, то необходимо создать build-файл Ant (build file), который сможет выполнить ряд полезных целей (targets), указанных выше - компиляция, проверка приложения, удаление временных файлов и т.д. Выберем импортированный проект в окне C/C++ Projects или Navigator, затем создадим новый файл (File > New > File) с именем build.xml (build-файл для Ant по умолчанию) (рисунок 14). Рисунок 14. Создание файла build.xml при помощи Мастера создания новых файлов ( New File wizard) Щелчком правой кнопки мыши необходимо вызвать контекстное меню для файла build.xml и открыть его при помощи редактора Ant (Open With > Ant Editor). Добавим блок сценария target для каждой задачи makefile, как показано в листинге 1. Каждый элемент Листинг 1. Build-файл Ant для работы с проектом unzip
Теперь нажатием правой кнопки мыши опять вызовем контекстное меню для файла build.xml и запустим его как сценарий сборки Ant (Run As > Ant Build). Диалоговое окно, появляющееся при запуске (рисунок 15), позволит выбрать нужную цель сборки. Рисунок 15. Цели сборки для рассматриваемого проекта Состояние процесса сборки можно увидеть в консоли (Console view), в которую выводятся результаты работы вызываемой команды Рисунок 16. Закончившийся процесс сборки Сборка с использованием конфигурационного скрипта Другим распространенным способом сборки программного обеспечения из исходного кода является конфигурационный сценарий GNU. Этот очень сложный сценарий для оболочки создается при помощи утилиты Обычные применения конфигурационных сценариев - запуск, сборка и установка программного обеспечения:
Параметр Как и в предыдущем примере с makefile, для организации взаимодействия между Eclipse и конфигурационным скриптом будет использоваться build-файл Ant. Выберем проект Вызовем контекстное меню файла build.xml и откроем его в редакторе Ant (Open With > Ant Editor). Теперь необходимо добавить цели, соответствующие целям выполнения makefile, как показано в листинге 2. Для Eclipse каждый элемент Листинг 2. Build-файл Ant, работающий с rx
Цели, определенные в этом build-файле, почти такие же, как и в рассмотренном ранее примере с проектом unzip. Следует отметить, что выполнение цели Рисунок 17. Выполнение цели make После нажатия Run будут выполняться цели, привязанные к Рисунок 18. Результат - готовая к применению библиотека Для переноса сложного программного проекта в современную IDE типа Eclipse вовсе необязательно прилагать большое количество усилий и сильно переделывать этот проект, поскольку можно воспользоваться преимуществами уже существующей процедуры сборки этого проекта. Использование Ant в качестве переходника между уже написанным старым процессом сборки проекта и Eclipse IDE не должно занять много времени. Также этот подход предоставляет возможность доступа ко всем возможностям старого makefile импортируемого проекта. Кроме того, данный подход может немного упростить некоторые операции, как в показанном выше примере с конфигурационным сценарием, и предоставить больше информации для процесса сборки. UNIX-программисты, которые хотят перейти с окружения командной строки на среду с более дружелюбным графическим интерфейсом Eclipse, могут использовать ее со старыми проектами. В статье было показано, как создать пустой проект, как импортировать программный код из файловой системы, zip-архива и из CVS-репозитария. Затем было рассмотрено, как использовать Ant для сборки проектов, которые используют изготовленный вручную makefile и для проектов, которые создают makefile при помощи конфигурационного сценария. Пользуясь преимуществами подсвечивания синтаксиса языка программирования в Eclipse, автозавершением кода и другими удобствами, предоставляемыми этой первоклассной IDE, разработчики могут быстро увеличить продуктивность работы как со своим программным кодом, так и с программным кодом других разработчиков. |