我有一个功能,我想更改其ID。但是,这使得无法更新现有安装,原因如下:
我正在寻找一种方法来表示F2取代了F1。我怎么能这样做?
答案 0 :(得分:3)
我假设你正在使用p2。
使用p2 metadata 导出/构建功能时,生成的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>
此<update>
元素指定此更新的功能的先前版本。现有的元数据生成工具如上所示设置了这个。
我创建了一个功能'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'/>
然后在我的日食中,我做了一个“检查更新”,它发现'g'是对前一个'f'的更新并进行了升级。 (您可能需要强制重新加载存储库以获取更改,在“可用软件站点”首选项页面中执行“测试连接”应该这样做。)
不幸的是,目前无法让导出/构建过程为您更改更新元素,并且需要进行手动编辑。我提出了this bug。