在 Eclipse 启动配置中使用功能设置捆绑启动级别

问题描述 投票:0回答:1

我正在尝试运行一个插件测试,该测试要求一个捆绑包以特定的启动级别启动。问题是,这似乎只有在使用“仅在下面选择的插件”而不是“在下面选择的功能”的启动配置时才可能。

我想避免维护基于插件的启动配置,每次添加或重命名插件时我都需要更新这些配置。这样做的过程确实很麻烦,并且当多个开发人员修改相同的启动配置文件时会产生很多冲突。

所以我想使用基于功能的启动配置。当选择“下面选择的功能”时,我仍然可以添加单独的插件,但似乎没有任何选项来设置启动级别。

我通过使用产品构建中生成的

config.ini
来让它工作。不幸的是,它似乎需要一个
bundles.info
文件,其中再次包含各个插件的列表,所以这并没有真正让我进一步。

在这种情况下,有什么方法可以设置某些捆绑包的启动级别,而不必维护每个启动配置的所有必需插件的列表?

eclipse-plugin osgi eclipse-pde
1个回答
1
投票

Eclipse 2019-09 支持基于功能的启动器配置启动级别。
我没有测试它,因为我还无法从 Eclipse Oxygen 更新,但这正是我所需要的。


对于早期的 Eclipse 版本,我找到了一个可能的解决方案,即使用

osgi.bundles
属性来覆盖包及其启动级别。

Eclipse 有“配置器”的概念,可用于配置包状态。可以通过覆盖启动配置对话框的“VM 参数”字段中的 osgi.bundles 属性来设置配置器。我使用

org.eclipse.equinox.simpleconfigurator
来定义所需的具有启动级别和自动启动属性的捆绑包(我使用我的产品的
config.ini
作为如何设置它的参考)。启动器的 VM 参数现在如下所示:

-Dosgi.bundles=org.eclipse.equinox.simpleconfigurator@1:start,org.example@2:start

它似乎有效,但看起来有点像黑客。如果有人知道更好的解决方案,我将不胜感激。

顺便说一句,有问题的包是针对 AspectJ 的,所以我的“VM 参数”字段看起来像这样,并且 AspectJ 编织现在可以正常工作了吗:

-Dosgi.bundles=org.eclipse.equinox.simpleconfigurator@1:start,org.eclipse.equinox.weaving.aspectj@2:start -Dosgi.framework.extensions=org.eclipse.equinox.weaving.hook

© www.soinside.com 2019 - 2024. All rights reserved.