OCLinEcore 安装过程中的问题

问题描述

我是一名学生,我尝试在 eclipse 中使用 EMF 创建一个元模型。现在我尝试在我的元模型中添加一些 OCL 约束,因此,我尝试使用 OCLinEcore。不幸的是,当我点击我的 (*.ecore / open with / OCLinEcore editor) 时,它显示以下错误

加载器约束冲突:解决覆盖方法时“org.eclipse.ocl.xtext.essentialocl.ui.contentassist.EssentialOCLProposalProvider.getProposalFactory(Ljava/lang/String;Lorg/eclipse/xtext/ui/editor/contentassist/ContentAssistContext; )Lcom/google/common/base/Function;"当前类org/eclipse/ocl/xtext/essentialocl/ui/contentassist/EssentialOCLProposalProvider的类加载器(org/eclipse/osgi/internal/loader/EquinoxClassLoader的实例)及其超类加载器(org/eclipse/的实例) osgi/internal/loader/EquinoxClassLoader),对于签名中使用的 com/google/common/base/Function 类型具有不同的 Class 对象(发生在 org.eclipse.ocl.xtext.oclinecore.ui.OCLinEcoreExecutableExtensionFactory 中)

有人可以帮我解决这个问题吗,或者还有其他一些方法可以将 OCL 约束添加到元模型中吗?。 提前致谢。

解决方法

对于签名中使用的类型 com/google/common/base/Function 有不同的 Class 对象

强烈建议您不一致的 Guava 安装。通常 Eclipse OCL 使用 Xtext 需要的任何版本的 Guava。我怀疑您安装了其他导致冲突的东西。

如果没有您的配置的详细信息,就很难进一步评论。检查您安装的插件文件夹以查看您拥有多少个 com.google.guava。一个是好的。麻烦不止一个。我曾经努力阻止 Eclipse 本身提供不止一个 Guava,但这是一场失败的战斗。