替换 Eclipse 中现有的功能 ID

发布于 2024-07-26 01:21:44 字数 279 浏览 5 评论 0原文

我有一个功能,我想更改其 ID。 然而,这使得更新现有安装变得不可能,原因如下:

  1. 假设版本 1.0 的功能 F1 由版本 1.0 的插件 A 组成。
  2. 现在,我想要 1.1 版本的功能 F2,它使用 1.1 版本的插件 A。
  3. 安装 F2 后,我收到一个错误 - 我已经有了功能 F1,它需要版本 1.0 中的插件 A,因此,安装插件 A 1.1 将取消该依赖性。

我正在寻找一种方法来表示 F2 取代 F1。 我怎样才能做到这一点?

I have a feature and I want to change its' ID. However, this makes it impossible to update existing installation and here's why:

  1. Assume the feature F1 at version 1.0 consist of plugin A at version 1.0.
  2. Now, I want to have a feature F2 at version 1.1 which uses plugin A at version 1.1.
  3. Upon installing F2 I get an error - that I already have feature F1 which requires plugin A in version 1.0 and, thus, installing plugin A 1.1 will void that dependency.

I'm looking for a way to denote that F2 replaces F1. How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雨落星ぅ辰 2024-08-02 01:21:44

我假设你正在使用 p2。

当您使用 p2 导出/构建功能时 元数据,生成的 content.xml (.jar) 包含类似以下内容:

<unit id='f.feature.group' version='1.0.0' singleton='false'>
  <update id='f.feature.group' range='[0.0.0,1.0.0)' severity='0'/>
  ...
</unit>

元素指定该功能的先前版本更新。 现有的元数据生成工具对此进行了设置,如上所示。

我创建了一个功能“f”,其中包括插件“A 1.0.0”并与元数据一起导出,并将该功能安装到我的 eclipse 中。 然后我创建了一个功能“g”,其中包括插件“A 2.0.0”。 我再次将其导出到同一个存储库。 然后我手动编辑了 content.xml 文件,并更改为:

<unit id='g.feature.group' version='1.0.0.200907061120' singleton='false'>
  <update id='g.feature.group' range='[0.0.0,1.0.0.200907061120)' severity='0'/>

然后

<unit id='g.feature.group' version='1.0.0.200907061120' singleton='false'>
  <update id='f.feature.group' range='[0.0.0,1.0.0.200907061120)' severity='0'/>

在我的 Eclipse 中,我执行了“检查更新”,它发现“g”作为先前“f”的更新并进行了升级。 (您可能需要强制重新加载存储库以获取更改,在“可用软件站点”首选项页面中执行“测试连接”应该可以做到这一点)。

不幸的是,目前没有办法让导出/构建过程为您更改更新元素,并且需要手动编辑。 我提出了此错误

I am assuming you are using p2.

When you export/build your feature with p2 metadata , the resulting content.xml (.jar) contains something like the following:

<unit id='f.feature.group' version='1.0.0' singleton='false'>
  <update id='f.feature.group' range='[0.0.0,1.0.0)' severity='0'/>
  ...
</unit>

This <update> element specifies previous versions of the feature that this one will update. The existing metadata generation tooling sets this as you see above.

I created a feature 'f' which includes plug-in "A 1.0.0" and exported with metadata and installed that feature into my eclipse. Then I created a feature 'g' which includes plug-in "A 2.0.0". I exported this again to the the same repository. Then I went and manually edited the content.xml file, and changed:

<unit id='g.feature.group' version='1.0.0.200907061120' singleton='false'>
  <update id='g.feature.group' range='[0.0.0,1.0.0.200907061120)' severity='0'/>

to

<unit id='g.feature.group' version='1.0.0.200907061120' singleton='false'>
  <update id='f.feature.group' range='[0.0.0,1.0.0.200907061120)' severity='0'/>

Then in my eclipse, I did a "Check for Updates", and it found 'g' as an update to the previous 'f' and did the upgrade. (You may need to force the repository to be reloaded to pick up the changes, doing a "test connection" in the Available Software Sites preference page should do this).

Unfortunately there is currently no way to do get the export/build process to change the update element for you, and it would need to be a manual edit. I raised this bug.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文