【问题标题】:Inheriting Eclipse Plug-In继承 Eclipse 插件
【发布时间】:2015-10-20 03:36:43
【问题描述】:

我有一个插件,它呈现一个编辑器来编辑一个特定的文件。我想创建一个具有更多功能的相同插件。

是否可以使用\继承现有插件并覆盖一些行为来创建我自己的插件?

我精通从头开始创建新插件。但是不知道怎么做?

【问题讨论】:

  • 也许您可以描述一下您尝试过但无法弄清楚的事情?

标签: java eclipse plugins eclipse-plugin


【解决方案1】:

您不能从插件继承,即使您是这两个插件的创建者(至少在术语继承的标准含义中)。

  1. 您可以将所有功能添加到现有插件中。
  2. 或者公开第一个插件的扩展并在第二个插件中使用它们。为此,您需要修改第一个插件。您需要为此创建扩展点。

在任何情况下,您都不能从其他插件(如 PDT、JDT 等)继承...如果您仔细想想,这就是插件架构背后的全部理念。除了继承之外,您还可以通过 ExtensionsExtension Points 让两个插件协调工作以满足用户的需求。

【讨论】:

  • 我不是第一个插件的所有者,所以不能公开任何Extn。 :-(
  • 如果是这种情况,您需要与该插件的所有者交谈,然后将您的功能直接添加到该插件,或者获得许可并创建扩展点(因为大多数时候,插件是开源的)。我做过一次。
  • 如何给插件添加功能?有什么想法吗?
  • 您必须与插件的作者合作。
【解决方案2】:

一般来说,没有允许从插件完全继承的“继承”机制。

特别是,在 plugin.xml 中声明的大多数扩展不支持任何类似于“继承”的机制。

但是,在某些简单的情况下,您可以在子 plugin.xml 中复制父 plugin.xml 中的声明,并将它们调整为指向继承自父插件中原始类的类。 但是这种技术有很多局限性:

  • 这仅适用于某些扩展点。
  • 原始插件可能不会公开所有需要子类化的类。
  • 这可能会导致子类化或从原始插件复制许多类。
  • 这需要很好地了解每个重用类及其与原始插件的关系,以防止出现意外行为。 (如果父插件实际上可以与其他插件一起使用,这一点非常重要。)

    为了获得更好的结果,父插件需要设计为可重用,通常提供可重用的类,甚至更好地提供专用的扩展点。

【讨论】:

    猜你喜欢
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 2013-08-09
    • 2013-11-04
    • 2019-06-07
    • 2017-10-04
    相关资源
    最近更新 更多