3

Eclipse 插件开发非常新。我已将 jar 项目转换为 eclipse 插件。但我真的不知道,如何利用它。一些基本的疑问,

  1. 如何在我们的程序中调用插件中可用的方法?
  2. 每个暴露的方法都应该是公开的,以便在我们的程序中使用它吗?

我的想法就像一个插件来总结两个数字。用户安装插件并在此插件中调用 add(x,y) 方法。就像从包含的 jar 中调用方法一样。

有很多教程解释了如何创建插件,但我没有找到如何使用它们。

4

2 回答 2

1

您所描述的是一个普通的 OSGi 包,没有 Eclipse 特定的功能。就 New Plug-in 向导而言,您的“对 UI 没有任何贡献”。从技术上讲,这意味着它不需要plugin.xml.

你的外部代码感知包的方式就像它是一个普通的 jar:你可以访问它的类,实例化它们,并调用它们的方法。或者你可以调用静态方法,就像你习惯的那样。

OSGi 提供的附加层意味着您可以识别您的捆绑包向其用户导出了哪些 Java 包。因此,一个公共的类,但不驻留在导出的包中,其他包无法访问(但这仅适用于严格模式;否则您只会收到访问限制警告)。

于 2013-06-27T13:03:57.053 回答
0

我想这就是你描述的情况......

您有一个希望 Eclipse Java (JDT) 用户安装的插件。在他们的 Java 项目中,您希望他们能够在您的插件中使用一些 Java 类。

在 Java 中,类加载器必须在类路径中找到一个类。JDT 通过“类路径容器”管理项目的类路径。第一个示例是当您创建 Java 项目时,JDT 将添加“JRE System Library”作为容器。您可以在 Package Explorer 的项目下看到它。

另一个例子是 JUnit 插件。您会注意到,当您第一次将 JUnit 测试用例添加到 JDT 项目时,会出现一个对话框询问是否将 JUnit 库添加到构建路径。(这是 JUnit 插件的 New File Wizard 的显式行为。)如果您同意,您将在 Package Explorer 中看到“JUnit 4”容器。

另一个例子:PDE 扩展了 JDT 所做的事情。当您创建插件项目时,PDE 添加一个“插件依赖项”容器,它根据您在插件清单中声明的​​插件依赖项进行管理。

用户可以为自己喜欢的库创建和引用自己的类路径容器。

但是,当然,作为库提供者,您希望像 JUnit 插件一样为他们提供一个。为此,在您的插件中:

  1. 添加对 JDT Core 的依赖
  2. 从这个扩展点扩展:org.eclipse.jdt.core.classpathContainerInitializer

如果您想要一个向导页面来创建或编辑一个类路径容器条目:

  1. 添加对 JDT UI 的依赖
  2. 从此扩展点扩展:org.eclipse.jdt.ui.classpathContainerPage

一些插件使用向导页面来自定义容器(JUnit 允许选择 JUnit 3 或 4);其他人只是使用该页面来提供有关容器的信息。

请参阅 JDT 文档主题设置 Java 构建路径并交叉引用您熟悉的任何示例的源代码。

这是一篇好文章:使用类路径容器简化 Eclipse 类路径

要回答您的问题:

  1. initialize您必须使用您的子类的方法将类添加到类路径中ClasspathContainerInitializer
  2. 是的,您希望客户端调用的方法必须是公共的,并且是您添加到类路径的类的成员。
于 2013-06-27T18:29:16.847 回答