Eclipse plugin 解析Eclipse产品中的p2依赖关系

Eclipse plugin 解析Eclipse产品中的p2依赖关系,eclipse-plugin,eclipse-rcp,p2,Eclipse Plugin,Eclipse Rcp,P2,我正在尝试在Eclipse产品(MCUXpressoIDE)中安装一个功能(com.iar.cdt.arm.sdk.feature)。 该特性需要另一个特性(org.eclipse.emf.feature,没有指定版本),它是产品本身的一部分(在版本2.19中,作为org.eclipse.emf.common.feature)。尽管如此,p2仍试图从一个可用的更新站点获取相同的功能,导致冲突和安装错误 除了更新站点之外,P2是否认为产品本身是需要的特征的来源?若否,原因为何 编辑:是的,请参见

我正在尝试在Eclipse产品(
MCUXpressoIDE
)中安装一个功能(
com.iar.cdt.arm.sdk.feature
)。 该特性需要另一个特性(
org.eclipse.emf.feature
,没有指定版本),它是产品本身的一部分(在版本2.19中,作为
org.eclipse.emf.common.feature
)。尽管如此,p2仍试图从一个可用的更新站点获取相同的功能,导致冲突和安装错误

除了更新站点之外,P2是否认为产品本身是需要的特征的来源?若否,原因为何

编辑:是的,请参见

原始安装例外情况如下所示:

 Cannot complete the install because of a conflicting dependency.
 Software being installed: IAR Toolchain for ARM (8.30.x - 8.50.x) 8.1.0.202007252323 (com.iar.cdt.arm.sdk.feature.feature.group 8.1.0.202007252323)
 Software currently installed: MCUXpresso IDE 11.2.0.202007071544 (MCUXpressoIDE 11.2.0.202007071544)
 Only one of the following can be installed at once:
 EMF Common 2.17.0.v20190920-0401 (org.eclipse.emf.common.feature.jar 2.17.0.v20190920-0401)
 EMF Common 2.19.0.v20200324-0932 (org.eclipse.emf.common.feature.jar 2.19.0.v20200324-0932)
 Cannot satisfy dependency:
 From: MCUXpresso IDE 11.2.0.202007071544 (MCUXpressoIDE 11.2.0.202007071544)
 To: org.eclipse.equinox.p2.iu; org.eclipse.emf.common.feature.group [2.19.0.v20200324-0932,2.19.0.v20200324-0932]
 Cannot satisfy dependency:
 From: IAR Toolchain for ARM (8.30.x - 8.50.x) 8.1.0.202007252323 (com.iar.cdt.arm.sdk.feature.feature.group 8.1.0.202007252323)
 To: org.eclipse.equinox.p2.iu; org.eclipse.emf.feature.group 0.0.0
 Cannot satisfy dependency:
 From: EMF Common 2.17.0.v20190920-0401 (org.eclipse.emf.common.feature.group 2.17.0.v20190920-0401)
 To: org.eclipse.equinox.p2.iu; org.eclipse.emf.common.feature.jar [2.17.0.v20190920-0401,2.17.0.v20190920-0401]
 Cannot satisfy dependency:
 From: EMF Common 2.19.0.v20200324-0932 (org.eclipse.emf.common.feature.group 2.19.0.v20200324-0932)
 To: org.eclipse.equinox.p2.iu; org.eclipse.emf.common.feature.jar [2.19.0.v20200324-0932,2.19.0.v20200324-0932]
 Cannot satisfy dependency:
 From: EMF - Eclipse Modeling Framework Runtime and Tools 2.20.0.v20191028-0905 (org.eclipse.emf.feature.group 2.20.0.v20191028-0905)
 To: org.eclipse.equinox.p2.iu; org.eclipse.emf.common.feature.group [2.17.0.v20190920-0401,2.17.0.v20190920-0401]

根据安装例外情况,ARM的IAR工具链(
com.IAR.cdt.ARM.sdk.feature.feature.group
需要任何版本(
0.0.0
)的EMF
org.eclipse.EMF.feature.group
)。更新站点中可用的EMF是2.20,它与EMF Common 2.17一起提供。但该EMF Common 2.19相冲突,后者是MCUXpresso IDE产品的固定部分(
MCUXpressoIDE

要解决此冲突,请通过添加以下更新站点,使用EMF Common 2.19提供EMF 2.22

我不明白你的问题。据我所知,IAR Toolchain for ARM的安装在MCUXpresso IDE产品中失败,因为IAR Toolchain for ARM需要的是EMF Common的2.17版本(它不允许像往常一样的版本范围,例如2.17或更高版本,但小于3.0)。这是失败的,因为该产品包含并需要EMF,而且在确切的版本中也是通用的,但版本为2.19。如果我理解正确,该产品通过非
installMode=“root”
功能包含它,因此降级EMF Common也不起作用。ARM的IAR工具链对EMF 2.6.1或更高版本有要求(未指定匹配规则):我正在调查是否缺少匹配规则可能是这里的问题。问题是为什么p2试图安装来自更新站点(2.17)的另一个EMF版本,而不是使用产品(2.19)中已经安装的版本,尽管IAR功能中没有对EMF 2.17的任何确切要求。我现在编辑了这个问题以更正功能和版本,使它们与错误消息中的相同。我没有注意到IAR和MCUXpresso功能之间的EMF依赖使用不同的功能,这可能解释了它失败的原因。我必须自己纠正。ARM的IAR工具链(
com.IAR.cdt.ARM.sdk.feature.feature.group
)需要任何版本(
0.0.0
)的EMF(
org.eclipse.EMF.feature.group
)。更新站点上可用的EMF(显然尚未安装)是2.20,它需要EMF Common 2.17。添加更新站点可以修复它吗?你完全正确,谢谢!问题在于产品和正在安装的功能之间的不同功能依赖关系。按照您的描述添加更新站点可以很好地解决这个问题。如果您愿意将此作为答复提交,我很乐意接受。再次感谢!