7

我正在为我们的项目创建一个基于 Eclipse 3.6.2 的产品。我们的想法是创建一个 Eclipse 安装,其中包含我们需要的所有插件,并且所有配置都已设置好,因为我们需要它们用于项目。

作为其中的一部分,我想确保包含我们的更新站点,但我该怎么做呢?

如果我选择导出首选项更新站点不包括在内。我可以从首选项页面导出更新站点并获得一个 XML 文件,但是如何将它包含在我的 config.ini 文件中?还是有其他方法?

目标是,当用户运行自定义 Eclipse 产品时,我们的更新站点将出现在站点列表中。理想情况下,只有列表中的那些。

4

2 回答 2

7

您可以添加一个p2.inf文件,在安装时指示特定更新站点:

instructions.configure=\
addRepository(type:0,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);\  addRepository(type:1,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);

这将添加www.eclipse.org/equinox/p2/testing/updateSite.

此文件 ( p2.inf) 需要与您的MANIFEST.MF文件位于同一目录中。您可以在此处阅读有关此内容的更多信息。

于 2012-10-04T16:18:35.507 回答
1

由于很有可能我必须再次执行此操作,并且我没有机会记住下次如何执行此操作,因此我将写下我经历的步骤:

我创建了一个带有说明的 p2.inf 文件;

instructions.configure=\
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);`

根据Eclipse wiki,inf 文件可以放在与 my 相同的目录中feature.xml,这就是我所做的。

我有一个包含此功能的产品,因此我使用 Eclipse 产品导出向导导出了该产品。我确保建立一个存储库。

构建完成后,存储库有一个 content.jar。在 content.jar 中有一个 content.xml。检查它,我可以发现:

<touchpointData size='1'>
   <instructions size='1'>
     <instruction key='configure'>
       org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(<all my update sites>);
     </instruction>
   </instructions>
 </touchpointData>

因此,这验证了导出确实看到了我的 p2.inf 文件并对其进行了处理。

要从存储库安装,我使用了 Eclipse Director 脚本:

cmd /c "C:\Program\Eclipse\director\director -consoleLog -bundlepool c:/program/eclipse/eclipse3.6_custom -profileProperties "org.eclipse.update.install.features=true" -i MyProduct.Product -r "file:/C:\eclipse\exported\repository" -d c:/program/eclipse/eclipse3.6_custom -p helios"`

该脚本将产品从存储库安装到目标。

于 2012-10-11T13:16:55.760 回答