具有多个Eclipse版本的目标平台 - Tycho将使用哪个版本?

时间:2014-02-09 20:01:40

标签: eclipse-plugin eclipse-rcp tycho target-platform

从网站https://wiki.eclipse.org/Tycho/Target_Platform,我推断以下内容:

  • 如果'repositories'部分包含p2存储库,那么就Tycho而言,该存储库中的所有内容都将自动被视为目标平台的一部分。
  • 如果引用目标定义文件,则就tycho而言,该目标定义文件中的所有内容都被视为目标平台的一部分。

假设我在“存储库”下有一个存储库,它在示例中指向http://download.eclipse.org/releases/indigo。此外,我声明了一个指向http://download.eclipse.org/releases/helios的目标定义文件。

在Eclipse中,开发人员然后使用目标定义文件作为目标平台。对于单个插件项目中的依赖项,未定义任何版本,因为这些包的版本已由目标定义文件定义。

问题:Tycho会使用Indigo或Helios版本吗?

1 个答案:

答案 0 :(得分:3)

目标平台将包含Indigo和Helios的内容。引用Target Platform wiki page

  

如果组合了多个目标平台配置方法,则目标平台包含通过每种方法定义的内容的并集。

因此,对于依赖项解析,Tycho可以使用Indigo捆绑包,也可以使用Helios捆绑包,或者混合使用。

该解决方案基于p2规划器,该规划器找到满足要求的有效解决方案。在存在多个解决方案的情况下,p2规划器优先考虑以后的捆绑版本和一小组传递依赖性。这些偏好通常彼此矛盾,例如,当更高版本的bundle具有更大的传递依赖项集时。所以一般来说很难预测在这种情况下选择哪个版本。

因此,如果您需要知道编译捆绑包的内容,请使用适当限制可用版本的目标平台。