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



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

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

<location includeAllPlatforms="false"includeConfigurePhase="false"includeMode="slicer"includeSource="false"type="InstallableUnit">

<unit id="com.vectrace.MercialEclipse.feature.feature.group"version="2015"/>lt;unit id="com.google.gson.source"version="2.1.0.201304290948"/>

<储存库location="file:///path/to/repository"/>

<位置>

在目标编辑器UI中,我得到了以下错误:

文件不存在:

<工作空间路径>/。metadata.plugins/org.eclipse.pde.core/.bundle_pool/com.vectrace.MercurialEclipse_2.1.0.201304290948.jar

我不明白为什么捆绑包池中不存在文件会阻止我向目标添加功能。这个功能似乎在p2站点中得到了正确的定义,我认为这只是挂在旧引用或其他东西上的一些eclipse怪异之处。但是,通常能解决这些问题的"日食之舞"的几个小时的变化并没有解决这个问题。

我尝试过重新创建MercurialEclipse repo、重新镜像本地离线存储库、使用-clean重新启动以及其他各种操作。有人能帮我理解eclipse在抱怨什么吗?

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

最新更新