2013-06-27 2 views
3

Очень новая разработка плагина eclipse. Я превратил проект jar в плагин eclipse. Но я действительно не знаю, как это использовать. Некоторые основные сомнения,сомнения, связанные с разработкой плагина для eclipse

  1. Как назвать метод, доступный в плагине в нашей программе?
  2. Должен ли каждый открытый метод быть общедоступным, чтобы использовать его в нашей программе?

Моя идея - это что-то вроде плагина для суммирования двух чисел. И пользователь устанавливает плагин и вызывает метод add (x, y) в этом плагине. Также как вызов метода из включенной банки.

Есть много учебников, объясняющих, как создать плагин, но я не нашел, как использовать его.

ответ

0

Я думаю, что это положение вы описываете ...

У вас есть плагин, который вы хотите Eclipse, Java (JDT) пользователей для установки. В своих проектах Java вы хотите, чтобы они могли использовать некоторые из классов Java в вашем плагине.

В Java класс должен быть найден на пути к классам загрузчиком классов. JDT управляет classpath для проектов через «контейнеры путей класса». Первый пример этого - когда вы создаете проект Java, JDT добавит «Системную библиотеку JRE» в качестве контейнера. Вы можете увидеть его в проекте в Проводнике пакетов.

Другим примером этого является плагин JUnit. Вы заметите, что при первом добавлении тестового примера JUnit к проекту JDT в диалоговом окне задается вопрос о добавлении библиотеки JUnit в путь сборки. (Это явное поведение мастера создания нового файла плагина JUnit.) Если вы согласны, вы увидите контейнер JUnit 4 в Проводнике пакетов.

Еще один пример: PDE расширяет то, что делает JDT. Когда вы создаете проект Plugin, PDE добавляет контейнер «Plug-in Dependencies», который управляет на основе зависимостей плагина, которые вы декларируете в манифесте плагина.

Пользователи могут создавать и ссылаться на свои собственные контейнеры классов для своих любимых библиотек.

Но, конечно, как поставщик библиотеки, вы хотите дать им один, как плагин JUnit. Чтобы сделать это, в плагине:

  1. Добавить зависимость от JDT Ядра
  2. Продлить с этой точки расширения: org.eclipse.jdt.core.classpathContainerInitializer

Если вы хотите страницу мастера, чтобы создать или изменить запись пути к классам контейнера:

  1. Добавить зависимость от JDT UI
  2. Продлить с этой точки расширения: org.eclipse.jdt.ui.classpathContainerPage

Некоторые плагины используют страницу мастера для настройки контейнера (JUnit позволяет выбирать JUnit 3 или 4); Другие просто используют страницу для предоставления информации о контейнере.

См. Документацию по документации JDT Setting the Java build path и перекрестные ссылки на исходный код любых примеров, знакомых вам.

Вот хорошая статья: Simplify Eclipse classpaths using classpath containers

Чтобы ответить на ваши вопросы:

  1. Вы должны добавить классы к классам, используя метод initialize вашего подкласса ClasspathContainerInitializer.
  2. Да, методы, которые вы хотите, чтобы клиенты вызывали, должны быть общедоступными и быть членами классов, которые вы добавляете в путь к классам.
1

То, что вы описываете, представляет собой простой комплект OSGi без особых функций, связанных с Eclipse. С точки зрения мастера нового подключаемого модуля ваш «не вносит вклад в пользовательский интерфейс». Технически это означает, что он не нуждается в plugin.xml.

То, как ваш внешний код воспринимает этот пакет, точно так же, как если бы он был обычным банком: вы можете получить доступ к его классам, создать их экземпляр и вызвать их методы. Или вы можете вызвать статические методы, как вы привыкли.

Дополнительный уровень, предоставляемый OSGi, означает, что вы можете определить, какие пакеты Java упаковывают ваш пакет в своих пользователей. Поэтому класс, открытый, но не находящийся в экспортированном пакете, недоступен для других пакетов (это относится только к строгому режиму, в противном случае вы получите только предупреждение ограничения доступа).