Eclipse RCP Target无法添加功能,因为在bundle pool中找不到jar文件

时间:2015-12-02 01:09:34

标签: eclipse rcp p2 target-platform

对于我的RCP应用程序,我创建了两个目标,一个指向目标项目的存储库目录中的p2站点,因此用户可以在未连接到Internet时使用目标。 p2存储库是使用ant脚本创建的镜像,我验证它具有目标尝试加载的所需版本的功能和插件。

它适用于除了一个之外的所有功能(com.vectrace.MercurialEclipse,它是从我通过导出MercuriualEcliopse功能创建的本地p2更新站点镜像的)。我在目标文件中加载了该功能,如此

  

< location includeAllPlatforms =" false" includeConfigurePhase ="假"   includeMode ="限幅器" includeSource ="假"类型=" InstallableUnit">

     

< unit id =" com.vectrace.MercurialEclipse.feature.feature.group"   版本=#&34; 2015" /> < unit id =" com.google.gson.source"   版本=" 2.1.0.201304290948" />

     

<储存库   位置="文件:///路径/到/库" />

     

< /地点>

在目标编辑器UI中,我收到此错误:

  

文件不存在:

     

< workspace path> /.metadata.plugins / org.eclipse.pde.core / .bundle_pool / com.vectrace.MercurialEclipse_2.1.0.201304290948.jar

我不明白为什么捆绑池中不存在文件会阻止我向目标添加功能。该功能似乎在p2站点中已正确定义,我认为这只是一些关于挂在旧引用或其他东西上的日食怪异。但是," eclipse dance"通常清除此类问题的方法未能解决问题。

我尝试重新创建MercurialEclipse仓库,重新镜像本地脱机存储库,重新启动-clean以及其他各种事情。有人可以帮我理解eclipse抱怨这个消息吗?

1 个答案:

答案 0 :(得分:0)

Eclipse说它想要bundle_pool目录中的jar文件,所以我手动将它复制到那里。这使得目标负载正确,但我想知道为什么我必须这样做。看起来像是一个错误或故障,因为jar文件应该添加到捆绑池中,因为将功能添加到目标,而不是作为先决条件。但是所有通常的旋转都不会让eclipse停止坚持要求jar文件已经在bundle_pool目录中。