我目前遇到的问题是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文件在其依赖项部分中明确依赖于“核心”插件。 我使用。生成.classpath和.project用于“fancy”插件 Mvn eclipse:eclipse
在eclipse IDE中为花式插件导入生成的项目后,我发现eclipse无法解析对其Manifest文件中指定的“core”插件的依赖性。 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 这是在maven中部署“Core”插件jar的位置,此位置是我机器上的有效位置。
我还看到为“fancy”生成的.classpath文件具有以下条目
但是,eclipse无法在“Fancy”清单中解析插件“Core”的依赖项。
从命令行,没有看到任何问题。然而,日食中存在错误的事实意味着我们无法从日食中发射/运行任何东西,这对我们来说是一个显示阻碍。
有没有人知道如何解决这个问题,或者eclipse如何识别已在.classpath文件中使用其位置指定的包?
答案 0 :(得分:1)
您需要定义可以由Tycho构建和IDE工作区使用的Target Platform。 Eclipse的捆绑/插件开发的默认行为是使用正在运行的IDE作为目标平台,但这是一个不幸的默认设置,因为对于几乎所有“真实”项目来说这是一个非常糟糕的主意。相反,你应该使用一个特定的TP来确定你拥有的依赖关系,use that same target definition in Tycho, too。
答案 1 :(得分:0)
声明bundle依赖项时,请查看maven范围设置。我认为你正在寻找RUNTIME。