2014-02-11 53 views
0

我目前面临的一个问题是,eclipse无法解析清单中指定的插件依赖项。如何开发OSGi包而无需在Eclipse中打开或导入依赖包?

让我用2个插件的帮助概括我的问题。 说一个插件是一个核心插件“com.mycompany.core”,另一个插件是一个奇特的插件“com.mycompany.fancy”。

插件com.mycompany.core是一支不同的球队拥有一个插件,并部署在我公司的Maven仓库,下组ID为“com.example”

我的团队拥有com.mycompany.fancy。这个插件对插件“com.mycompany.core”具有依赖性。

为了简单起见,让我分别称这些插件为“花式”和“核心”。

我们只想在eclipse IDE中使用“花哨”插件。

我正在构建使用tycho的“花哨”插件。花哨插件的pom文件对依赖项部分中的“core”插件有明确的依赖关系 我生成.classpath和.project for“看中”插件使用 Mvn的日食:日食

导入生成的项目在Eclipse IDE中的花哨插件后,我看到日食是不是能够解决依赖于‘即在指定的核心’插件其清单文件Eclipse报告错误,说“Bundle'com.mycompany.core'无法解析。 在“幻想”项目的引用库下,我看到eclipse列出了“核心”插件。核心插件jar的位置是C:\ mvn_repo \ com \ example \ com.mycompany.core \ 1.0.0 \ com.mycompany.core-1.0.0.jar 这是“Core”插件jar的位置部署在maven中,并且此位置是我的计算机上的有效位置。

我也看到了“神奇”的生成.classpath文件有以下条目

然而,月食是无法在“花式”的清单以解决该插件的“核心”的依赖项。

从命令行看,没有发现问题。然而,在eclipse中有错误的事实意味着我们不能在eclipse中启动/运行任何东西,这对我们来说是一个阻碍。

有谁知道如何解决这个问题,或者eclipse如何识别已经在.classpath文件中指定位置的包?

回答

1

您需要定义一个Target Platform,Tycho内部版本和您的IDE工作区都可以使用它。 Eclipse针对捆绑/插件开发的默认行为是将运行的IDE用作目标平台,但这是一个不幸的默认行为,因为对于几乎所有“真实”项目来说这都是一个非常糟糕的主意。相反,你应该使用一个特定的TP,你在这个TP中指定你有什么依赖关系,并且use that same target definition in Tycho, too

+0

嗨E-Riz-感谢您的回复。这种方法对我有用。编辑目标平台以包含可能包含我的工作区插件依赖的插件的目录。以下链接也有帮助。 http://eclipse-debug.blogspot.com/2010/09/what-is-target-platform.html – user1411252

+0

很高兴提供帮助。如果它回答了问题,请接受答案(请参阅http://meta.stackoverflow.com/help/someone-answers) –

0

在声明捆绑依赖时查看maven作用域设置。我觉得你是在找RUNTIME。

相关问题