由于很有可能我必须再次执行此操作,并且我没有机会记住下次如何执行此操作,因此我将写下我经历的步骤:
我创建了一个带有说明的 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"`
该脚本将产品从存储库安装到目标。