我目前正在尝试由 tycho 完成我的构建(约 30 个捆绑包)。在我的单元测试中使用Mockito
时,我遇到了一些令人困惑的问题。
我为测试的包创建了一个片段项目。由于 tycho 应该使用清单解析所需的包,我从.
然后,当我尝试将 mockito 添加到清单中的所需捆绑包时,未列出 mockito。我找到了这篇文章并创建了一个指向 eclipse indigo 的目标平台。eclipse-test-plugin
pom.xml
我包括了平台细节,所以我不需要 eclipse delta 包。然后第一个奇怪的事情发生了。Eclipse 告诉我存在一些无法满足的依赖关系,当我在 eclipse 中将新创建的目标平台设置为活动时,eclipseorg.osgi.framework
无法解决更多的包,例如 等。但是当我构建一个eclipse-product
使用 tycho 和目标平台时,它正在工作。
如果我将当前的 eclipse 安装设置为活动平台,则捆绑包被解析。我选择了以下 indigo 版本:
- Eclipse RCP 插件开发人员资源
- Equinox 目标组件
- 码头目标组件
所以我的第一个问题是“我的目标平台出了什么问题,所以 tycho 可以使用它,但 eclipse 不行?”
为了更接近我的原始问题(让 mockito 运行),我将当前的 eclipse 安装设置为活动目标平台。Eclipse 然后可以解析org.osgi.framework
包和其他。
然后,我pom.xml
在上述帖子中再次添加了先前删除的对 mockito 的依赖项。但是,当我尝试将其添加到清单中所需的捆绑包时,我仍然找不到 mockito。
所以我的第二个问题是“我做错了什么?你如何引用未在 eclipse 更新站点上发布的包,例如 maven 中央存储库?”
更新:在我的研究中,我发现了两种在我的目标平台中包含来自非 p2-update-sites的捆绑包的方法:
- Nexus Pro Nexus
专业版支持 p2-Proxy 存储库,它可以将 Maven 中央存储库等默认 maven 存储库包装到 p2 更新站点中,但专业版每年的成本约为 800 美元。 - 创建一个 eclipse-repository
您可以创建一个新的 maven 项目,eclipse-repository
其中包含所有您想要的包。然后将创建的工件部署到公共 Web 服务器。
然后,在您的目标平台中,您可以引用 Nexus p2-proxy 存储库或网络托管的 p2-repo。
有谁知道其他方式 - 可能更方便/更便宜?
请帮助我更多地了解第谷令人困惑的世界......
在此先感谢