繁体   English   中英

如何在不打开或导入Eclipse中依赖包的情况下开发OSGi包?

[英]How to develop OSGi bundles without opening or importing the dependent bundles in Eclipse?

我目前遇到的问题是eclipse无法解决清单中指定的插件依赖性。

让我借助2个插件来概括我的问题。 假设一个插件是核心插件“ com.mycompany.core”,另一个是精致插件“ com.mycompany.fancy”。

插件com.mycompany.core是另一个团队拥有的插件,并部署在我公司的maven存储库中,组ID为“ com.example”。

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

为了简单起见,让我分别将这些插件称为“ fancy”和“ core”。

我们只想使用Eclipse IDE中的“ fancy”插件。

我目前正在使用tycho构建“ fancy”插件。fancy插件的pom文件在“ dependencies”部分中对“ core”插件有明确的依赖关系。我使用Mvn为“ fancy”插件生成了.classpath和.project。 日食:日食

在eclipse IDE中为fancy插件导入生成的项目后,我看到eclipse无法将依赖关系解析为其清单文件中指定的“ core”插件。 Eclipse报告一个错误,提示“捆绑'com.mycompany.core'无法解决。 在“ fancy”项目的引用库下,我看到eclipse列出了“ core”插件。 核心插件jar的位置为C:\\ mvn_repo \\ com \\ example \\ com.mycompany.core \\ 1.0.0 \\ com.mycompany.core-1.0.0.jar这是“核心”插件jar所在的位置部署在maven中,并且此位置是我计算机上的有效位置。

我还看到为“ fancy”生成的.classpath文件具有以下条目

但是,eclipse无法解决“ Fancy”清单中插件“ Core”的依赖项。

从命令行看不到任何问题。 但是,Eclipse中存在错误的事实意味着我们无法在Eclipse中启动/运行任何东西,这对我们来说是个停滞点。

有谁知道如何解决这个问题,或者日食要识别已经在.classpath文件中指定其位置的包,需要做什么?

您需要定义一个既可以由Tycho构建版本使用,又可以在您的IDE工作区中使用的目标平台 Eclipse进行捆绑/插件开发的默认行为是使用运行中的IDE作为目标平台,但这是不幸的默认设置,因为对于几乎所有“真实”项目而言,这都是一个非常糟糕的主意。 相反,您应该使用一个特定的TP,在其中您精确地确定您具有的依赖项,并在Tycho中也使用相同的目标定义

声明捆绑软件依赖度时,请查看Maven范围设置。 副手,我想您正在寻找RUNTIME。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM