1

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

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

4

2 回答 2

3

无法p2.mirror工作;该任务要么反映太多(就像一个特性的所有版本,即使你只对最后一个或特定的一个感兴趣)和/或太少(比如只是特性但没有依赖项)。

我的解决方案是这样的:

  1. 将 Eclipse 解压到eclipse-template
  2. 创建副本为eclipse-install
  3. 将功能安装在eclipse-install
  4. cd eclipse-template ; find . -type f -exec rm "../eclipse-install/{}"从步骤 #1 ( )中删除版本中存在的副本中的任何文件。

剩下的就是功能和插件文件。用于org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher将其转换为 p2 存储库(有关详细信息,请参阅文档)。

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

  1. 在 Eclipse 项目中创建一个“目标定义”(创建一个新的或使用现有的,没关系)
  2. 将更新站点添加到此 *.target 文件
  3. 选择您想要的功能
  4. 单击目标定义编辑器右上角的微小“导出”按钮(在“设置为目标平台”旁边)

这将使用您选择的确切版本以及您选择的文件夹中的所有依赖项导出所有选定的功能。

目标编辑器有点笨拙和缓慢,但它可以工作。

将文件保持在版本控制之下,因为目标编辑器有时会出错。

于 2011-07-29T11:43:11.993 回答
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)
于 2011-06-15T13:43:24.617 回答