Библиотека сайта rus-linux.net
Среда разработки Eclipse
Глава 6 из книги "Архитектура приложений с открытым исходным кодом", том 1.
Оригинал: Eclipse,
глава из книги "The Architecture of Open Source Applications" том 1.
Автор: Kim Moir
Перевод: Н.Ромоданов
6.1.2. Инструментарий Java Development Tools (JDT)
В JDT предоставляются редакторы языка Java, визарды, средства поддержки рефакторинга, отладчик, компилятор и инкрементный сборщик. Компилятор также помогает в наборе кода, навигации по коду и имеет другие функции редактирования. Java SDK не поставляется вместе с Eclipse, так что от пользователя зависит, какой SDK он установит на своем компьютере. Почему команда, разрабатывающая JDT, написала отдельный компилятор для компиляции Java-кода в Eclipse? Первоначально был взят код компилятора из проекта VisualAge Micro Edition. Планировалось поверх компилятора создать инструментальные средства, так что написание самого компилятора было логичным решением. Этот подход также позволил разработчикам JDT создавать точки расширения с тем, чтобы можно было расширять компилятор. Это было бы трудно делать, если бы компилятор был работающим из командной строки приложением, предоставляемым третьей стороной.
Написание своего собственного компилятора позволяет иметь средство, которое обеспечивает поддержку инкрементного сборщика, имеющегося в IDE. Инкрементный сборщик позволяет улучшить производительность, т. к. он заново компилирует только те файлы или их зависимости, которые были изменены. Как работает инкрементный сборщик? Когда вы в Eclipse создаете проект на языке Java, вы создаете ресурсы в рабочем пространстве, в котором хранятся ваши файлы. Сборщик в Eclipse берет входные файлы из вашего рабочего пространства (файлы .java
) и создает выходные файлы (файлы .class
). По состоянию процесса сборки сборщик знает о типах (классах или интерфейсах), имеющихся в рабочем пространстве, и то, как они соотносятся друг с другом. Состояние процесса сборки сообщается сборщику компилятором каждый раз, когда компилируется некоторый исходный файл. Когда выполняется инкрементная сборка, сборщику сообщается только об изменениях в ресурсах, т. е. сообщается о всех новых, измененных или удаленных файлах. Если файлы удаляются, то удаляются соответствующие файлы классов. Новые или измененные типы добавляются в очередь. Файлы в очереди компилируются один за другим и сравниваются со старым файлом класса для того, чтобы определить, были ли структурные изменения. Структурные изменения представляют собой модификации класса, которые могут влиять на другой тип, ссылающийся на него, например, изменение сигнатуры метода, добавление или удаление метода. Если происходят структурные изменения, то все типы, которые ссылаются на него, также добавляются в очередь. Если тип вообще был изменен, то новый файл класса записывается в каталог выходных файлов сборщика. Состояние процесса сборки обновляется в соответствие с информацией о скомпилированном типе. Этот процесс повторяется для всех типов в очереди до тех пор, пока очередь не будет пуста. Если есть ошибки компиляции, редактор языка Java создаст маркеры, указывающие на проблему. На протяжении многих лет инструментальные средства, предоставляемые в составе JDT, постоянно расширялись согласованно с появлением новых версий самой среды выполнения Java.
6.1.3. Среда разработки плагинов PDE
В среда разработки плагинов Plug-in Development Environment (PDE) предоставляются инструментальные средства для разработки, сборки, установки и тестирования плагинов и других артефактов, которые используются для расширения функциональных возможностей платформы Eclipse. Поскольку плагины Eclipse были новым типом артефактов в мире Java, не было системы сборки, которая могла бы преобразовывать исходный код в плагины. Поэтому команда разработчиков PDE написала компонент, называемый Сборщик PDE (PDE Build), который проверял зависимости плагинов и создавал скрипты Ant для сборки этих артефактов.
Продолжение статьи: Eclipse 3.0: Среда времени выполнения, RCP и роботы.