对于我的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抱怨这个消息吗?
答案 0 :(得分:0)
Eclipse说它想要bundle_pool目录中的jar文件,所以我手动将它复制到那里。这使得目标负载正确,但我想知道为什么我必须这样做。看起来像是一个错误或故障,因为jar文件应该添加到捆绑池中,因为将功能添加到目标,而不是作为先决条件。但是所有通常的旋转都不会让eclipse停止坚持要求jar文件已经在bundle_pool目录中。