如何镜像功能?

时间:2011-06-15 09:07:33

标签: eclipse mirror p2

使用p2 ant tasks,镜像插件的功能非常简单。

但是,如何镜像安装功能所需的一切?

2 个答案:

答案 0 :(得分:3)

无法让p2.mirror工作;任务要么镜像太多(就像所有版本的功能一样,即使你只对最后一个或特定的一个感兴趣)和/或太少(只是功能但没有任何依赖)。

我的解决方案是这样的:

  1. 将Eclipse解压缩到eclipse-template
  2. 创建eclipse-install
  3. 副本
  4. eclipse-install
  5. 中安装该功能
  6. 删除步骤#1(cd eclipse-template ; find . -type f -exec rm "../eclipse-install/{}")版本中存在的副本中的所有文件。
  7. 这将为您提供功能和插件文件。使用org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher将其转换为p2仓库(see the docs了解详情)。

    [更新2011-11-01] 如果您不需要从命令行运行此解决方案,还有另一种解决方案。

    1. 在Eclipse项目中创建“目标定义”(创建新项目或使用现有项目,无关紧要)
    2. 将更新网站添加到此* .target文件
    3. 选择您想要的功能
    4. 点击目标定义编辑器右上角的微小“导出”按钮(“设为目标平台”旁边)
    5. 这将导出所有选定的功能,其中包含您选择的确切版本以及您选择的文件夹中的所有依赖项。

      目标编辑器有点笨拙而且很慢但是有效。

      将文件保留在版本控制下,因为目标编辑器有时会混乱。

答案 1 :(得分:0)

我使用以下Ant代码在单个存储库中镜像2个功能:

<!-- Creates single p2 repo from 2 repos -->
<p2.mirror>
    <repository location="file:///${DESTINATION}/repo-name" append="false"/>
    <source>
       <repository location="file:///${feature1-repo}/feature1"/>
       <repository location="file:///${feature2-repo}/feature2"/>
    </source>
</p2.mirror>

此外,您可以使用<iu>和功能的ID来指定要镜像的功能。功能ID必须按以下方式指定:

your.feature.id.group.group.group 

如果您的功能具有特定的平台配置,则IU变为

your.feature.id.win32.win32.x86 (OS, Widget system, Architecture)