Платформа
“Eclipse”
Введение в среду разработки Eclipse
Если вы внимательно следите за развитием OpenSource проектов или программированием с применением Java, вы уже могли слышать часть того шума, который сопровождает Eclipse. Eclipse - это расширяемая среда разработки (Integrated Development Environment, далее IDE) с открытым исходным кодом (далее OpenSource). Проект был запущен в ноябре 2001 года, когда IBM передала исходный код своего Websphere Studio Workbench стоимостью 40 миллионов долларов на OpenSource и сформировала консорциум Eclipse для управления продолжающейся разработкой.
Цель создания Eclipse была сформулирована следующим образом: "разработать богатую, полнофункциональную индустриальную платформу коммерческого качества для разработки сильно-интегрированных инструментов". Для достижения этой цели консорциум нацелен на три главных проекта:
1. Проект The Eclipse (http://www.eclipse.org/eclipse/index.html) непосредственно Eclipse IDE ("платформы", содержащей и исполняющей инструменты Eclipse), инструментов разработки для Java (Java Development Tools, далее JDT) и среды разработки Plug-In (Plug-In Development Environment, далее PDE), позволяющих расширять платформу.
2. Проект Eclipse Tools (http://www.eclipse.org/tools/index.html) имеет своей целью создание инструментов для платформы Eclipse (в текущей разработке находятся подпроекты создания IDE для Cobol, IDE для C/C++, а также инструмента для построения EMF моделей).
3. Проект The Eclipse Technology (http://www.eclipse.org/technology/index.html) ответственен за технологические разработки, эволюцию и обучение использованию платформы Eclipse.
Платформа Eclipse в сочетании с JDT включает многие из возможностей, которые включаются в коммерческие IDE: редактор с подсветкой синтаксиса, инкрементальная компиляция кода, потокобезопасный отладчик, навигатор по классам, менеджеры файлов и проектов, а также интерфейсы к стандартным системам контроля исходных текстов, таким как CVS и ClearCase.
Проект Eclipse представляет собой первую столь мощно поддержанную мировым IT-сообществом попытку создания единой открытой интегрированной платформы разработки приложений, обладающей надежностью, функциональностью и уровнем качества коммерческого продукта. Фактически эта платформа предназначена для всего и ни для чего конкретно: она представляет собой основу, имеющую блочную структуру и интегрирующую инструменты разработки ПО различных производителей для создания приложений на любом языке, с использованием любых технологий и для любой программной платформы. Вокруг проекта Eclipse в настоящее время сформировано сообщество крупнейших IT-компаний, среди которых Borland, IBM, SAP AG, RedHat и другие.
Также Eclipse предлагает множество уникальных возможностей, например рефакторинг кода (http://www.refactoring.com) , автоматическое обновление/установка кода (с помощью Менеджера Обновлений), список текущих задач, отладку модулей с помощью JUnit (http://www.junit.org) и интеграцию с инструментом компоновки Jakarta Ant (http://jakarta.apache.org/ant/index.html).
Несмотря на большое число стандартных возможностей, Eclipse отличается от традиционных IDE по ряду особенностей. Наверное самое интересное в Eclipse то, что она полностью независима от платформы и языка. Помимо языков, поддерживаемых консорциумом в настоящий момент (Java, Cobol, C/C++), ведутся разработки по добавлению в Eclipse поддержки таких языков, как Python, Eiffel, PHP, Ruby, и C#.
Консорциум предоставляет готовые исполняемые файлы для Windows, Linux, Solaris, HP-UX, AIX, QNX и Mac OS X. Большой интерес в Eclipse представляет plug-in архитектура, а также богатый API, предоставляемый PDE, позволяющий расширять Eclipse. Добавление поддержки для нового редактора, представления или языка программирования является достаточно простым, благодаря грамотно разработанным API и большим строительным блокам, предоставляемым Eclipse.
Учитывая сотни проектов по разработке plug-in, ведущихся в настоящее время, таких индустриальных гигантов как IBM, HP и Rational, предоставляющих ресурсы, а также проектных тяжеловесов вроде Erich Gamma, помогающих направлять процесс эволюции в нужное русло - у Eclipse большое будущее.
В данный момент вы, вероятно, задумываетесь над тем, где взять копию Eclipse для вашей платформы и что вы должны сделать, чтобы ее установить. Во первых вы должны убедиться в том, что у вас установлена нужная версия библиотек поддержки Java. Если вы не знаете, где взять нужную версию JVM для вашей платформы, подробную информацию вы можете найти на eclipse.org.
Как только вы установите Java VM, вы готовы к установке Eclipse. Посетите страницу скачивания файлов Eclipse (http://www.eclipse.org/downloads/) и выберите последнюю готовую (release) версию для вашей платформы. Все версии скачиваются в виде .zip файлов. Распакуйте файл в подходящую директорию, затем прочитайте все файлы, которые могут оказаться в поддиректории readme.
Верите вы или нет, но на этом установка окончена. Если вы верно установили вашу JVM и правильно распаковали архив, то вы готовы к первому запуску Eclipse. Во всех распространяемых версиях имеется запускающее приложение. Название загрузчика eclipse.exe. Для запуска Eclipse нужно написать файл .bat с двумя строчками, в первой из которых указывается путь к установленной Java VM, а во второй вызывается сам загрузчик eclipse.exe, собственно теперь запуск Eclipse происходит через .bat файл. Например:
set PATH=C:\j2sdk1.4.2_04\bin
eclipse.exe.
При первом запуске загрузчика Eclipse перед появлением самой среды выполняется ряд завершающих установочных шагов (например, создание директории workspace для хранения файлов проектов).
Рисунок 1. Создание директории workspace для хранения файлов проектов
После того, как вы установили и запустили Eclipse, пришло время его использовать. После первого запуска вы должны увидеть окно, похожее на это:
Рисунок 2. Первоначальный вид окна Eclipse
Как вы можете видеть у Eclipse довольно стандартное меню:
и панель инструментов:
Также имеется многостраничный редактор с закладками, в настоящий момент показывающий страницу навигатора:
На экране присутствуют Файловый Навигатор (Navigator), Список Текущих Задач (Tasks) и Группировщик Кода (Outline), но пока что не содержат никакой информации. Для продолжения нашего исследования Eclipse, мы создадим простое приложение калькулятора на базе Swing.
1. Чтобы начать создание первого Java-проекта, выберите File->New->Project... В левом списке появившегося мастера выберите Java Project. Затем нажимите кнопку Next.
Рисунок 3. Первая страница мастера Нового Проекта
2. В качестве названия проекта введите Calculator и снова нажмите Next. Можно указать место для хранения исходных и скомпилированных файлов, а также создать отдельные каталоги для таких файлов.
Рисунок 4. Вторая страница мастера Нового Проекта
3. Последний шаг мастера позволяет указать место для хранения исходных и скомпилированных файлов, а также задать любые подпроекты и библиотеки, которые могут понадобиться для работы и компоновки текущего проекта.
Рисунок 5. Третья страница мастера Нового Проекта
4. Щелкните на кнопке Finish. В появившемся окошке предлагающем переключить перспективу жмем на YES и Eclipse создаст новый проект.
После создания проекта, вы можете обратить внимание на то, что окно Eclipse выглядит не совсем так, как вначале: представление Outline переместилось в правую часть окна, Navigator был заменен на Package Explorer и так далее.
Рисунок 6. Перспектива Java
Новый внешний вид носит название Перспективы Java. Перспектива, в терминах Eclipse, это сохраняемый внешний вид окна, включающий любое число редакторов (editors) и представлений (views). В поставку Eclipse входит несколько перспектив по умолчанию (Java, Debug, Resource и так далее), которые можно настраивать. Вы также можете создавать новые перспективы. Перспективы управляются с помощью элементов меню Window или панели инструментов, которая обычно располагается вдоль левой границы окна Eclipse.
Следующим шагом в создании нашего Java проекта станет создание папок, в которых будет содержаться исходный код. Переключитесь в перспективу ресурсов (Resource) с помощью Window->Open Perspective->Other. В представлении Навигатора Файлов раскройте дерево папок и найдите узел src. Выберите этот узел, а затем пункт меню File->New->Folder. В открывшемся диалоге убедитесь, что выбрана папка src, затем введите com в поле Folder Name.
Создание большого числа папок с использованием диалога New Folder может показаться несколько неудобным. К счастью, Eclipse позволяет сделать эту работу, используя методы, принятые в вашей операционной системе: командную оболочку, Windows Explorer и так далее. Воспользуйтесь одним из этих методов и создайте подпапки devious и calculator в папке com. после этого выберите любую папку в представлении Навигатора, а затем пункт меню File->Refresh. Eclipse просмотрит файловую систему и приведет проект в соответствие с внесенными изменениями. На данный момент наш проект должен выглядеть примерно так:
Рисунок 7. Создание папок завершено
И последнее замечание по созданию файлов: на ранних этапах разработки проекта вы можете столкнуться с необходимостями часто запускать код на выполнение, создавать новые файлы или папки, добавлять новый код, компилировать и тестировать его снова. Важно помнить, что меню Eclipse отображается по-разному в зависимости от текущей перспективы. Таким образом, если вы переключаетесь в перспективу ресурсов для создания новых файлов или папок через представление Навигатора, вы обнаружите, что например, меню Run заметно отличается от аналогичного меню в перспективе Java. Одним из решений данной проблемы может послужить использование пункта меню Window->Show View и отображение представления Навигатора в перспективе Java. Чтобы закрепить это изменение, используйте команду меню Window->Save Perspective As..., позволяющее сохранить настройки перспективы под новым именем или заменить настройки существующей перспективы Java.
Теперь, когда мы построили структуру папок, мы можем начать добавлять код к нашему проекту. Мы разделим нашу программу калькулятора на три отдельных файла кода: CalcMode.java, CalcPanel.java и Calculator.java.
CalcModel.java
package com.devious.calculator;
import java.util.Observable;
public class CalcModel extends Observable
{
public static final int OP_NONE = 0;
public static final int OP_ADD = 1;
public static final int OP_SUB = 2;
public static final int OP_MUL = 3;
public static final int OP_DIV = 4;
private int pendingOp = 0;
private int previousValue = 0;
private int currentValue = 0;
public String getValue()
{
return Integer.toString(currentValue);
}
public void addDigit(String s)
{
char c = s.charAt(0);
String val = getValue() + c;
setDisplay(Integer.parseInt(val));
}
public void addDigit(char c)
{
String val = getValue() + c;
setDisplay(Integer.parseInt(val));
}
public void setOperation(int op)
{
if (pendingOp != OP_NONE)
calculate();
previousValue = currentValue;
this.pendingOp = op;
currentValue = 0;
}
public void setDisplay(int value)
{
currentValue = value;
setChanged();
notifyObservers();
}
public void clear()
{
this.pendingOp = OP_NONE;
previousValue = 0;
setDisplay(0);
}
public void calculate()
{
switch (pendingOp)
{
case OP_ADD:
setDisplay(previousValue + currentValue);
break;
case OP_SUB:
setDisplay(previousValue + currentValue);
break;
case OP_MUL:
setDisplay(previousValue * currentValue);
break;
case OP_DIV:
setDisplay(previousValue / currentValue);
break;
}
pendingOp = OP_NONE;
previousValue = 0;
}
}
CalcPanel.java
package com.devious.calculator;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class CalcPanel
extends JPanel
implements ActionListener, Observer
{
private CalcModel model;
private JLabel display = new JLabel("0");
public CalcPanel(CalcModel model)
{
super();
this.model = model;
model.addObserver(this);
}
protected JButton addButton(String label)
{
JButton b = new JButton(label);
b.addActionListener(this);
return b;
}
protected JPanel createButtonPanel()
{
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(0, 4));
panel.add(addButton("1"));
panel.add(addButton("2"));
panel.add(addButton("3"));
panel.add(addButton("+"));
panel.add(addButton("4"));
panel.add(addButton("5"));
panel.add(addButton("6"));
panel.add(addButton("-"));
panel.add(addButton("7"));
panel.add(addButton("8"));
panel.add(addButton("9"));
panel.add(addButton("*"));
panel.add(addButton("C"));
panel.add(addButton("0"));
panel.add(addButton("="));
panel.add(addButton("/"));
return panel;
}
public void init()
{
this.setLayout(new BorderLayout());
display.setVerticalTextPosition(JLabel.CENTER);
display.setHorizontalTextPosition(JLabel.RIGHT);
display.setVerticalAlignment(JLabel.TOP);
display.setHorizontalAlignment(JLabel.TRAILING);
display.setBorder(BorderFactory.createLineBorder(Color.black));
this.add(display, BorderLayout.NORTH);
this.add(createButtonPanel(), BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent evt)
{
System.out.println(evt.paramString());
try {
switch (evt.getActionCommand().charAt(0)) {
case '+':
model.setOperation(CalcModel.OP_ADD);
break;
case '-':
model.setOperation(CalcModel.OP_SUB);
break;
case '*':
model.setOperation(CalcModel.OP_MUL);
break;
case '/':
model.setOperation(CalcModel.OP_DIV);
break;
case '=':
model.calculate();
break;
case 'C':
model.clear();
break;
default:
model.addDigit(evt.getActionCommand());
break;
}
} catch (NumberFormatException ex) {}
}
public void update(Observable o, Object arg)
{
display.setText(model.getValue());
}
}
Calculator.java
package com.devious.calculator;
import javax.swing.*;
public class Calculator
{
public static void main(String[] args)
{
try {
UIManager.setLookAndFeel(
UIManager.getCrossPlatformLookAndFeelClassName());
} catch (Exception e) {}
JFrame calcFrame = new JFrame("Calculator");
CalcModel model = new CalcModel();
CalcPanel calcPanel = new CalcPanel(model);
calcPanel.init();
calcFrame.setContentPane(calcPanel);
calcFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
calcFrame.pack();
calcFrame.setVisible(true);
}
}
Создайте и поместите эти файлы в подпапку com/devious/calculator. Используйте команду File->Refresh для обновления проекта Eclipse.
Рисунок 8. Проект с добавленными исходными файлами
CalcPanel.java обрабатывает большую часть пользовательского интерфейса нашего калькулятора. Calculator.java отвечает за настойку графического интерфейса и его отображение. Большая часть важной работы обеспечивается файлом CalcModel.java, который реализует непосредственно "механику" калькулятора: реакцию на события, производство числовых вычислений, обновление окна и так далее. Самый простой путь исследования кода заключается в переключении в перспективу Java или в перспективу Просмотра Java (Java Browsing). Используйте элемент меню Window->Open Perspective или нажмите кнопку Open на "перспективной" панели инструментов.
При использовании Package Explorer для просмотра исходного кода вы можете заметить, что представление группировки кода является избыточным. Чтобы его закрыть, нажмите на значок х в заголовке его окна. При необходимости отобразить его снова, используйте команду меню Window->Show View->Outline.
Рисунок 9. Перспектива просмотра Java Browsing
Итак установили Eclipse, создали Java-проект, добавили папки и файлы, необходимые для работы простого приложения. Самое время посмотреть, как оно будет работать. Для выполнения последующих инструкций по запуску приложения вам нужно будет перейти в перспективу Java:
1. Из меню Run выберите элемент Run...
2. В появившемся диалоге из списка Конфигураций Запуска (Launch Configurations) выберите "Java Application", затем нажмите на кнопку New.
Рисунок 10. Диалог Run
3. Введите Calculator в качестве имени (Name) новой конфигурации.
4. Нажмите кнопку Search... и выберите Calculator в качестве главного класса (Main Class) введите в текстовом поле com.delirious.calculator.Calculator.
Рисунок 11. Выбор главного класса
5. Щелкните кнопку Run для сохранения конфигурации и запуска приложения.
После того как вы создали конфигурацию запуска приложения, вы можете запускать его многократно и использованием элемента меню Run->Run History или кнопки Run на панели инструментов. Если вы потратите достаточно времени, забавляясь с калькулятором, вы обратите внимание на то, что несмотря на нормальную в целом работу, у него имеется один большой недостаток - он не выполняет вычитание. Время использовать отладчик исходного кода Eclipse и найти проблему. Если вы выполняли все шаги, описанные в статье, вы можете отладить приложение в той конфигурации запуска, которая была создана ранее. Выберите в меню Run->Debug History->Calculator для запуска приложения в отладчике.
Когда вы запускаете приложение для отладки, Eclipse автоматически переходит к перспективе Отладки (Debug):
Рисунок 12. Перспектива Отладки
Поскольку кажется, что наша проблема центрирована вокруг функции вычитания, мы установим точки прерывания (breakpoints) в обработчиках клавиш "минус" и "равно". Сначала нам нужно переключиться на закладку редактирования для класса CalcPanel. (Если у вас нет открытой закладки для класса CalcPanel, вам следует переключиться обратно в перспективу Java или перспективу Ресурсов, открыть файл там и снова перейти в перспективу Отладки.)
Используйте представление Группировки Кода и выберите метод actionPerformed. Прокрутите несколько строк вниз, пока не увидите оператор case для клавиши "минус". Если вы выполните двойной щелчок по левой границе этой строки, Eclipse установит там точку прерывания. Прокрутите вниз еще несколько строк, чтобы установить еще одну точку прерывания на вызов model.calculate() в обработчике клавиши "равно".
Рисунок 13. Установка точки прерывания
Далее переключитесь на окно калькулятора и пощелкайте на нескольких кнопках. Что-нибудь вроде "2 4 6 -" должно сработать. Как только отладчик попадает на точку прерывания, вы можете использовать кнопки на панели инструментов для представления Отладчика (Debug view): для захода внутрь метода (step into), прохода по нему (step over) или выхода их него (step out).
Если мы зайдем внутрь метода setOperation, мы увидим, что он просто сохраняет код операции в поле pendingOp. Для продолжения исполнения программы нажмите кнопку Resume на панели инструментов отладчика.
Совет: Распространенной ошибкой для новых пользователей Eclipse является нажатие на кнопки Run или Debug вместо Resume. Такое действие вместо продолжения отладки приведет к запуску еще одной копии приложения.
Теперь нажмем еще несколько кнопок (например, "1 2 3") и затем "=". Как только мы войдем в метод calculate проблема станет очевидной: кто-то скопировал код для случая OP_ADD, но не произвел редактирование для правильного выполнения вычитания. Проблема решена.
Если вы запускаете ваше приложение на JVM версии 1.4 и выше, мы можем выполнить еще один шаг в нашем примере отладки. Вместо того, чтобы выходить из приложения, исправлять код, выполнять перекомпиляцию и запускать еще одну сессию отладки, вы можете вносить исправления в код на лету. В то время как отладчик по-прежнему запущен, измените проблемную строку с
setDisplay(previousValue + currentValue);
на
setDisplay(previousValue - currentValue);
Сохраните файл, нажмите кнопку Resume для продолжения запуска приложения. Используйте кнопку калькулятора "C" для сброса его состояния и попытайтесь выполнить ту же последовательность действий, что и раньше. На этот раз все работает правильно!
Мы только что продемонстрировали поддержку Eclipse для новой возможности JVM 1.4 и выше, называемой "ГорячееПереключение" ("HotSwap"). Архитектура отладки платформы Java (Java Platform Debugger Architecture, JPDA) позволяет изменять код в работающем приложении. Такая возможность особенно полезна в случае, когда запуск вашего приложения или переход к точке прерывания занимает длительное время.
CDT (C/C++ Development Tools) – это инструментальное средство C/С++ позволяющее создавать проекты в Eclipse на языке C/C++.
Сейчас мы познакомимся с тем как создать ваше первое С++ приложение в Eclipse используя модуль Eclipse CDT Plugin.
Все нижеследующее тестировалось в системе Windows 2000.
Для того чтобы создать наше приложение нам понадобиться:
Java 2 SDK v. 1.4.2 (j2sdk-1_4_2_04-windows-i586-p.exe)
Eclipse v. 3.0.1. (eclipse-SDK-3.0.1-win32.zip)
MinGW v.3.1.0 (MinGW-3.1.0-1.exe)
CDT v. 2.0.2 (org.eclipse.cdt.sdk-2.0.2-win32.x86.zip)
Установка и настройка MinGW.
Чтобы компилировать C и C++ исходные тексты, используя Eclipse, необходимо установить C/C ++ компилятор для Windows. Есть несколько C/C ++ компиляторов для Windows, но MinGW был выбран для этой обучающей программы из-за его простой инсталляции и конфигурации. MinGW основан на комплектах инструментальных средств GNU и обеспечивает файлы заголовка и библиотеки, необходимые для C/C ++ разработки. Во время записи этой обучающей программы, последняя версия MinGW, которая была проверена, чтобы работать должным образом с последними изменениями Eclipse, это версия 3.1.0-1. Чтобы загрузить MinGW, посетите следующий сайт: http://www.mingw.org/download.shtml
После того как мы загрузили с интернета предложенный файл, его необходимо установить.
Установка.
Выбираем «Yes» для продолжения инсталляции.
Next для продолжения.
Нажмите «Yes» для принятия лицензии.
Нажмите Next для продолжения.
Установите MinGW в директорию C:\MinGW
Нажмите Install для продолжения.
Следующее окно показывает процесс установки.
Нажмите Finish для выхода из установки.
Зайдите в «Панель управления» закладка «Дополнительно» кнопка «Переменные среды»
Создадим новую переменную “Path”, если у вас ее до этого не было.
Со значением: “C:\j2sdk1.4.2_04\bin;C:\MinGW\bin”
А если переменная Path уже была в системе, то просто добавьте в нее вышеупомянутое значение, нажав «Изменить».
Проверим работоспособность, т.е. правильность установки MinGW.
Для этого сделаем следующие шаги:
Пуск – Выполнить – «cmd»
В командной строке наберем gcc –v
При правильной установке вы увидите следующее:
А при не правильной установке вы увидите
Установка CDT Plugin.
Данная установка заключается в том, чтобы скачать с интренет сайта данный модуль в виде архива .zip и скопировать содержимое плагина находящегося в папке Eclipse в папку установленной среды Eclipse.
При этом в процессе копирования появиться сообщение о том что папки features и plugins уже существуют. Из этой ситуации мы выйдем подтвердив замену файлов нажатием на кнопку «Да – для всех».
Запустим Eclipse и проверим внесенные изменения
Зайдем меню Help – Avout Eclipse Platform и нажмем Plug-in details.
Eclipse CDT Plugin установлен успешно.
Создадим С++ проект используя Eclipse CDT Plugin.
Выберем File – New – Project
Standart Make C++ Project
Next
Введем имя проекта “HelloWorld” и его местоположение.
Next
3. В строке «Build command» введите «mingw32-make -f makefile»
Finish
Yes
File – New – File
Создадим новый файл main.cpp
Скопируем следующий текст в наш созданный файл
#include <iostream>
int main(int argc, char *argv[])
{
cout << "Hello World" << endl;
return 0;
}// end main
Сохраним новый файл.
У нас в консоле появилось сообщение, что нет файла “makefile”. Давайте его создадим. File – New – File
Скопируем следующий текст в наш файл.
main : main.o
g++ -o main main.o -L C:/MinGW/lib/gcc-lib/mingw32/3.2.3/ -lstdc++
main.o : main.cpp
g++ -ggdb -c main.cpp
all :
${MAKE} main
clean :
-del main.o
Сохраним сделанные изменения.
Теперь у нас появилось две ошибки которые обозначают, что мы используем недекларируемые функции.
Ее можно легко исправить добавив в файл main.cpp после строчки «#include <iostream>» строчку «using namespace std;
Сохраним изменения.
Теперь мы видим что у нас создался файл main.cpp
Давайте запустим наше приложение.
Выбираем в меню Run – Run …
В конфигурации выбираем C/C++ Local
В поле C/C++ Application вводим “main.exe”
Нажимаем Apply и Run.
Ура. Мы сделали первое приложение в Eclipse CDT Plugin. Результат его работы мы видим в низу экрана в окне “Console”
Eclipse
состоит из проектов, каждый из которых курируется Комитетом по управлению
проектом (Project Management Committee, PMC) в соответствии с Уставом проекта.
Проекты делятся на подпроекты (subprojects). Для оформления нового проекта
(подпроекта) инициативной группой вносится предложение на проект (project
proposal), основным документом которого является декларация проекта (project
declaration), и проект получает статус предложенного (proposed project). Для
предложенных проектов проводится обсуждение их целей, тематического охвата,
организационной структуры проекта, результатов проекта и формирование проектной
команды.
Более подробно организационная структура, проектные роли и жизненный цикл проектов в рамках Eclipse описаны в документе The Eclipse Development Process.
На октябрь 2004 года состав Eclipse по проектам, подпроектам и предложенным проектам отражен на следующей схеме:
Ниже мы приводим краткое формализованное описание всех проектов, некоторых подпроектов и всех предложенных проектов Eclipse. В дальнейшем мы будем дополнять наш обзор недостающими описаниями подпроектов.
1 Проект Eclipse Project
Статус проекта: официальный проект сообщества Eclipse.
Цель проекта: разработка ПО платформы Eclipse.
Планируемые результаты проекта: см. планируемые результаты подпроектов.
Дополнительная информация о проекте: проект имеет следующие подпроекты:
1.1 Подпроект Platform
Цель подпроекта: создание и развитие собственно платформы IDE Eclipse, включая ее GUI, систему управления объектами среды разработки (проекты и связанные с ними ресурсы), отладчик и т. д.
Планируемые результаты подпроекта: платформа IDE Eclipse.
1.2 Подпроект JDT (Java Development Tools)
Цель подпроекта: создание и развитие Java IDE Eclipse, позволяющую разработку на Eclipse любого Java-приложения.
Планируемые результаты подпроекта: Java-плагины Eclipse.
1.3 Подпроект PDE (Plug-In Development Environment)
Цель подпроекта: создание и развитие IDE для разработки плагинов Eclipse.
Планируемые результаты подпроекта: редакторы, вьюеры (viewer), средства создания расширений плагинов (plug-in extension) и т. д.
2 Проект Eclipse Tools Project
Статус проекта: официальный проект сообщества Eclipse.
Цель проекта: создание и развитие инструментария платформы Eclipse для создания приложений на различных языках программирования.
Участники проекта:
Планируемые результаты проекта: см. планируемые результаты подпроектов.
Дополнительная информация о проекте: проект имеет следующие подпроекты:
2.1 Подпроект C/C++ IDE
Цель подпроекта: создание и развитие C/C++ IDE Eclipse.
Планируемые результаты подпроекта: C/C++ IDE Eclipse для создания приложений под различные операционные системы (приоритет имеет ОС Linux).
2.2 Подпроект GEF (Graphical Editor Framework)
Цель подпроекта: создание и развитие инструментария создания графических моделей приложений различных нотаций (DFD-, UML-диаграмм, WYSIWYG-схем для HTML и т. д.) с помощью платформы Eclipse.
Планируемые результаты подпроекта: SWT-плагины Eclipse.
2.3 Подпроект EMF
Цель подпроекта: создание и развитие инструментария генерации Java-кода на основе простых моделей классов (созданных, в частности, посредством UML или XML-схем).
Планируемые результаты подпроекта: плагин Eclipse.
2.4 Подпроект COBOL
Цель подпроекта: создание и развитие Cobol IDE Eclipse.
Планируемые результаты подпроекта: Cobol IDE Eclipse для создания приложений под различные операционные системы (приоритет имеет ОС Linux).
2.5 Подпроект VE (Visual Editor)
Цель подпроекта: формирование инфраструктуры для разработки средств создания GUI для Eclipse. Данная инфраструктура будет включать в себя Swing/JFC- и SWT-средства создания GUI, в том числе для C/C++ и других языков программирования и приложений, не поддерживаемых Java.
Планируемые результаты подпроекта: 20.09.04 была представлена версия 1.0 Eclipse Visual Editor, основными свойствами которого являются:
полная поддержка Eclipse 3.0.1.
2.6 Подпроект UML2
Цель подпроекта: создание и развитие основанного на EMF инструментария создания моделей в нотации UML 2.0 для Eclipse.
Планируемые результаты подпроекта: плагины Eclipse.
3 Проект Eclipse Technology Project
Статус проекта: официальный проект сообщества Eclipse.
Цель проекта: создание сообщества разработчиков, исследователей и преподавателей для развития технологий Eclipse. Это сообщество разделено на три связанных тематических потока: Исследований (Research), Инкубаторов (Incubators) и Образования (Education). Первый поток имеет свой целью ведение исследовательской деятельности в области инструментов и сред разработки ПО, а также языков программирования. Второй поток представляет собой множество небольших неформальных проектов, имеющих целью добавление новых функций к базовой функциональности платформы Eclipse. Третий поток делает в своей деятельности упор на разработку обучающих материалов и курсов по проекту Eclipse.
Планируемые результаты проекта: см. планируемые результаты подпроектов.
Дополнительная информация о проекте: проект имеет следующие подпроекты:
3.2 Подпроект OMELET (Open Modeling Environment with Links for Extensions and Transformations)
3.3 Подпроект AspectJ Development Tools Project (AJDT)
3.4 Подпроект AspectJ
3.5 Подпроект CME (Concern Manipulation Environment)
3.6 Подпроект ECESIS (Eclipse Community Education Project)
3.7 Подпроект Equinox
3.8 Подпроект Generative Model Transformer
3.9 Подпроект Koi
3.10 Подпроект Stellation
3.11 Подпроект XSD
3.12 Подпроект WSVT (Web Service Validation Tools)
А также следующие предложенные проекты:
3.13 Предложенный проект Voice Tools Project
Статус проекта: предложенный проект (не является официальным проектом сообщества Eclipse)
Цель проекта: создание основанного на стандартах W3C JSP/J2EE-инструментария для разработки "голосовых" приложений (здесь и далее - вольный перевод с англ. "voice applications" - приложения в области распознавания, обработки и преобразования человеческой речи).
Участники проекта: IBM, SBC Communications, VoiceGenie.
Планируемые результаты проекта: плагины-редакторы для VoiceXML, XML Form SRGS (Speech Recognition Grammar Specification) и CCXML (Call Control eXtensible Markup Language). Реализация других средств, позволяющих применять такие стандарты W3C как, например, LexiconML (Pronuncation Markup Language), будет добавляться в проект по мере роста зрелости этих стандартов.
Дополнительная информация о проекте: посредством этого проекта предполагается сделать стандарты W3C доминирующими в области разработки голосовых приложений. Данный проект расширяет возможности разработки XML- и web-приложений проекта Eclipse Web Tools Platform Project и зависит от хода его реализации.
3.14 Предложенный проект Eclipse Communications Project (ecomm)
Статус проекта: предложенный проект (не является официальным проектом сообщества Eclipse).
Цель проекта: создание инфраструктуры коммуникаций и обмена сообщениями платформы Eclipse с открытым исходным кодом.
Участники проекта:
Планируемые результаты проекта: Java-плагины Eclipse.
Дополнительная информация о проекте: разрабатываемая в ходе данного проекта инфраструктура позволит упростить разработку следующих типов приложений, предполагающих групповые коммуникации:
корпоративный контент-менеджмент.
3.15 Предложенный проект The Embedded Rich Client Platform (eRCP) Project
Статус подпроекта: предложенный проект (не является официальным проектом сообщества Eclipse).
Цель подпроекта: перенос и адаптация IDE Eclipse на другие электронные устройства.
Участники подпроекта: временные лидеры подпроекта: Jim
Robbins, IBM; Mark VanderBrink, IBM.
Заинтересованные стороны подпроекта: Nokia, Motorola, IBM.
Планируемые результаты подпроекта: адаптированные под различные электронные устройства следующие компоненты Eclipse:
Дополнительная информация о
подпроекте:
электронные устройства, для которых будет осуществляться адаптация платформы
Eclipse, должны иметь следующую спецификацию:
Дисплей:
Технологии ввода информации: T9, сенсорный экран, QWERTY
(клавиатура).
Вычислительная мощность: ARM9 100 МГц либо эквивалентная.
Объем памяти:
Коммуникационные возможности:
WiFi.
4 Проект Eclipse Test & Performance Tools Platform Project
Статус проекта: официальный проект сообщества Eclipse.
Цель проекта: создание инструментария для тестирования и мониторинга производительности приложений средствами платформы Eclipse.
Участники проекта: состав участников находится в стадии формирования.
Дополнительная информация о проекте: проект имеет следующий подпроект:
4.1 Подпроект Hyades
5 Проект Business Intelligence & Reporting Tools Project
Статус проекта: официальный проект сообщества Eclipse.
Цель проекта: создание надежной платформы для быстрого и эффективного создания отчетов любой степени сложности.
Участники проекта: список участников проекта.
Планируемые результаты проекта:
Дополнительная информация о проекте: проект ориентирован на три основные категории пользователей:
Проект имеет следующие подпроекты:
5.1 Подпроект ERD (Eclipse Report Designer)
5.2 Подпроект WRD (Web Based Report Designer)
5.3 Подпроект ERE (Eclipse Report Engine)
5.4 Подпроект ECE (Eclipse Charting Engine)
IDE Eclipse имеет ряд принципиальных особенностей, заложенных в нее еще на стадии проектирования, выражающихся в поддержке:
Архитектура платформы Eclipse
Графически архитектура платформы Eclipse может быть выражена схемой:
Каждое инструментальное средство разработки оформляется в виде плагина (plug-in), реализующего определенный набор функций, присоединяемого к платформе Eclipse посредством своего API и написанного на Java. Как правило, плагин представляет собой Java-код, оформленный в виде архива JAR, несколько файлов для чтения и набор других ресурсов, необходимых для работы плагина, например, библиотеки, графические изображения, шаблоны и т. д.
Open-source технологии, вошедшие в Eclipse
IDE Eclipse является результатом коллективного труда как компаний-вендоров так и некоммерческих объединений компаний и частных лиц. Будучи универсальной средой разработки приложений, Eclipse использует и включает в себя большое количество open-source технологий и программных продуктов, хорошо зарекомендовавших себя на рынке в соответствующих областях. Ниже мы приводим перечень этих разработок:
Ссылки на ресурсы, посвященные Eclipse
Здесь мы приводим список ссылок на ресурсы, посвященные Eclipse, которые мы считаем достойными упоминания для тех, кто ориентирован на серьезную работу с Eclipse:
Последние новости об Eclipse: http://www.eclipsenews.com/
В целом, платформа Eclipse предоставляет базис, состоящий из общих строительных блоков и API для рабочих областей и рабочую среду, а также различные точки расширения, через которые может интегрироваться новая функциональность. Через эти точки расширения утилиты, реализованные в виде отдельных плагинов, могут расширять платформу Eclipse. Пользователь видит интегрированную среду разработки (IDE), специализированную набором доступных плагинов. Тем не менее, вместо того, чтобы быть окончанием истории, это на самом деле лишь ее начало. Утилиты могут также задавать новые точки расширения и API, служа тем самым строительными блоками и точками интеграции с другими утилитами.
Этот короткий обзор не включает в себя множество интересных аспектов платформы Eclipse, таких как поддержку отладчика и интеграцию с утилитой сборки ANT. Более подробная информация об API платформы Eclipse, точках расширения и стандартных компонентах содержится в Руководстве Разработчика Плагинов Платформы (Platform Plug-in Developer Guide), которое доступно в виде online-справки в Eclipse SDK.