eclipse插件开发项目的启动器如何加载\处理“plugin.xml”文件?

时间:2012-11-07 22:42:10

标签: eclipse eclipse-plugin

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

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

  1. 它不在项目的类路径中。
  2. 不会将其复制到bin(输出)文件夹。
  3. 我看不出我对文件的修改会如何影响运行过程。

    据我所知,eclipse中有类似的机制也是如此:

    插件开发项目在项目的根文件夹中有一个文件 - “plugin.xml” 如果在不构建项目的情况下对文件进行更改或将其复制到bin文件夹,则在运行时会发生更改。

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

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

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

1 个答案:

答案 0 :(得分:0)

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

  1. 打开您的MANIFEST.MF文件/MANIFEST.MF,这将打开多页面编辑器。
  2. 单击构建选项卡(右起第三个)。
  3. 您可以在此处指定希望构建器在运行时包含在插件中的插件中的哪些资源。您会注意到plugin.xml已经被检查,这就是扩展每次都更新的原因。
  4. 在此编辑器页面上检查您希望能够在运行时加载和访问的资源。在幕后,这是更新build.xml,内部构建器使用它来确定构建/导出插件时要构建/添加的源。
  5. 你已经完成了这个,你可以获得对该文件的访问权限,你获得了插件的Bundle,并使用文件路径调用getEntryMethod,然后在那里打开输入流,你可以将其作为文件加载或者你想要什么。下面的代码示例:希望这有帮助 - 邓肯

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