【问题标题】:Setting start levels & auto-start of Eclipse plug-ins: p2.inf vs product definition设置 Eclipse 插件的启动级别和自动启动:p2.inf 与产品定义
【发布时间】:2013-07-05 17:29:21
【问题描述】:

我知道我可以使用 p2.inf 文件或使用产品定义文件在 Eclipse 中为捆绑包设置启动级别和自动启动标志。在产品文件中执行此操作可为我提供工具支持并将设置放入我的启动配置中。另一方面,使用 p2.inf 文件允许我基于每个功能管理启动级别,这为我提供了一个很好的启动级别设置分组。

现在我的问题:

定义启动级别和自动启动标志的首选方式是什么? p2.inf 似乎有点过时了,但是有没有办法在不使用 p2.inf 的情况下根据每个功能定义启动级别和自动启动标志?

【问题讨论】:

    标签: eclipse osgi p2


    【解决方案1】:

    这真的取决于个人喜好。产品层面大部分时间都是最终的最终神器。正如您所发现的,它具有更好的工具集成。当产品由 Tycho 或 PDE Build 组装时,您将确切知道其中包含什么以及需要启动什么才能使其正常工作。

    但是,有时在产品定义中深入到捆绑粒度级别并不合适,尤其是当它仅由功能组成时。但是,在功能级别甚至捆绑级别定义启动属性可能会很棘手。例如,当有人在另一个产品中使用您的功能/捆绑包时,他们可能有不同的自动启动/启动级别要求。

    FWIW,p2.inf 文件根本没有过时。这是修改/优化/指导 p2 的原始裸机。只是没有真正好的工具,而且可能永远不会有。

    【讨论】:

    • 谢谢你,Gunnar,你的回答对我帮助很大。还有一个问题:p2.inf 文件是指定启动级别的唯一方法吗?当您想动态地向已经运行的 OSGi 应用程序添加功能时?重新启动产品听起来不是最佳解决方案。
    • @usan:不鼓励在 stackoverflow 上提出后续问题。只需提出一个新问题。
    • 我无法获得 'setStartLevel(startLevel:1);markStarted(started: true);'在 p2.inf 中,捆绑包在产品中正常工作。看起来markStarted(started: true); 是正确的,但setStartLevel(startLevel:1); 被忽略了。有cmets吗?你有一个可行的例子吗?
    • 另外一个测试表明addJvmArg(jvmArg:-DTM=TM);被正确执行。它“只是”似乎是 setStartLevel(startLevel:1); 以某种方式被忽略或否决。
    猜你喜欢
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    相关资源
    最近更新 更多