2

我有一个基于 Eclipse 的项目(Eclipse 的 Scala IDE),它最近搬到了新家。我想更改各种功能 ID、Bundle-SymbolicNames 等以反映这一举动(即,使它们都具有 org.scala-ide 前缀)并重新启动版本编号(以前它与相应的 Scala 编译器版本相关联我想解耦这些)。

但我希望 p2 认识到这一点,例如。org.scala-ide.sdt.feature v. 1.0.0 是 ch.epfl.lamp.sdt v. 2.7.7 的升级。使用 RPM 可以使用obsoletes 指令来做到这一点...... p2 是否有等价物?

4

1 回答 1

2

我相信这是可能的,但目前没有工具(或文档)。

每个IU包含一个更新描述符 ( javadoc ),它指示它是哪个 IU 的更新。现有工具始终将其设置为同一捆绑包的先前版本。在 content.xml 中,它看起来像这样:

<unit id='org.eclipse.equinox.launcher' version='1.1.0.v20100507'>
   <update id='org.eclipse.equinox.launcher' range='[0.0.0,1.1.0.v20100507)' severity='0'/>
   ...

要设置这个,你可以

  1. 等待错误 282545得到修复。
  2. 手动编辑 content.xml(可能是 xslt 转换)
  3. 扩展p2 发布者以生成不同的描述符。您可能希望覆盖 BundlesAction 以使用您自己的 BundlesAction#createBundleIU 版本。
于 2010-06-21T14:12:24.270 回答