【问题标题】:How the launcher of eclipse Plugin development project loads\handles the "plugin.xml" file?eclipse插件开发项目的启动器如何加载\处理“plugin.xml”文件?
【发布时间】:2012-11-07 22:42:09
【问题描述】:

我想弄清楚如何将文件放在项目的根文件夹中并在运行时使用它,在那里它可以访问。

我这样做(将文件放在根文件夹中)遇到的问题是默认情况下它意味着:

  1. 它不在项目的类路径中。
  2. 不会复制到 bin(输出)文件夹。

我看不到我对文件的修改将如何影响运行过程。

据我所知,eclipse 中有一个类似的机制可以做到这一点:

Plugin开发项目在项目根目录下有一个文件-“plugin.xml”。
当您在文件中进行更改而不构建项目或将其复制到 bin 文件夹时,更改会在您运行它时发生。

示例:
在“plugin.xml”中添加一个扩展点并点击“RUN”,它将立即发生。

有人知道这个机制在 eclipse 中是如何工作的吗?

编辑 - 澄清: 我对eclipse插件开发项目的启动器如何加载\处理“plugin.xml”文件感兴趣。

【问题讨论】:

    标签: eclipse eclipse-plugin


    【解决方案1】:

    我假设当您说要将文件放在“项目的根文件夹”中时,您指的是正在开发的插件,然后在运行时您希望访问该文件。如果我没有正确理解这个问题,请不要投票给我,但根据我的理解,这里有一些步骤:

    1. 打开您的 MANIFEST.MF 文件 /MANIFEST.MF,这将打开一个多页编辑器。
    2. 单击构建选项卡(右三)。
    3. 您可以在此处指定您希望构建器在运行时包含在插件中的插件中的哪些资源。你会注意到 plugin.xml 已经被检查过,这就是扩展每次都更新的原因。
    4. 检查此编辑器页面上的资源以获取您希望能够在运行时加载和访问的资源。在幕后,这是更新您的 build.xml,内部构建器使用它来确定在构建/导出插件时要构建/添加的源。

    您已经完成了访问该文件的方法,您获取插件的 Bundle 并使用文件路径调用 getEntryMethod,然后从那里在输入流中打开,您可以将其作为文件加载或任何你想要的。下面的代码示例:希望这会有所帮助 - Duncan

    捆绑 myBundle = Platform.getBundle("com.mycompany.myplugin.id")
    InputStream in = myBundle.getEntry("/myfile.txt").openStream();

    【讨论】:

    • 感谢您的回答,但这回答了我构建过程的工作原理。我仍然不明白这个机制是如何工作的,甚至没有构建它,只是午餐它。顺便说一句,我不是在开发插件,而是在创建一种新型项目。所以通过了解“插件开发项目”中的机制是如何工作的——我可以在我的项目中实现它。
    • 你在创建一个新类型的项目,这意味着你在创建一个新的项目性质?这种项目类型会被用作 eclipse IDE 或 rcp 应用程序中的工具吗?不知道你的理解水平在哪里,你有没有创造一个新的项目性质?
    • 它是一个RCP应用程序,我已经创建了一个新的项目性质。我一直在尝试了解一个众所周知的机制是如何工作的——所以我不需要重新发明轮子。
    • 现在我有一个临时解决方案:我创建了一个构建器,它将根文件夹中的文件复制到 bin 文件夹中,以便它位于类路径中 - 但这不是 eclipse 处理的方式它在“插件开发”项目中。
    猜你喜欢
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    相关资源
    最近更新 更多