我在同一个套件中有几个Eclipse RCP应用程序,它们的可执行文件在同一目录中。我希望每个插件都有一个不同的"插件"目录。
我可以这样做吗?如果可以,怎么做?
[我知道我也可以将所有插件放在同一个目录中,并指定版本特定的依赖项,但这是一种特殊情况。]
经过几个小时的阅读、实验和头脑风暴,我才得以将其付诸实践。我在Stackoverflow中找不到答案;希望这能帮助下一个人去看。
首先,我重新构造了包含可执行文件的目录。可执行文件旁边有一个共享的"插件"目录。我在应用程序特定的子目录中复制了它,并删除了原来的。
parent
foo.exe
foo.ini
foo
configuration
config.ini
plugins
bar.exe
bar.ini
bar
configuration
config.ini
plugins
接下来,我在每个*.ini文件的顶部添加了类似于下面的设置,在-vmargs之上。[您的版本号可能会有所不同。]选项及其参数用换行符分隔。
-startup
foo/plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
-install
foo
--launcher.library
foo/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813/eclipse_1503.dll
这个现有的设置已经在-vmargs下面了。
-Dosgi.sharedConfiguration.area=file:configuration
注意:尽管这是有效的,但"configuration"目录和-Dosgi.sharedConfiguration.area
设置是来自单个-install目录的时间错误。将config.ini与插件目录放在一起并省略设置会更优雅。然而,我没有让这个部分发挥作用,我可以接受它。