0

我刚刚开始开发一个新的 Eclipse 插件,我希望在其中运行一个在 Eclipse 中运行的 Web 应用程序服务器。我发现了一个不错的博客,OSGi as a Web Application Server,它描述了如何做到这一点。作者建议为我的捆绑包需求创建一个目标环境,其中一些捆绑包是从 Equinox 项目 SDK(现在在 Juno 中称为 Equinox 目标组件)中提取的。我注意到当我的目标平台是我在教程中创建的平台时,教程项目运行良好,但当它是默认平台时无法启动。所以,现在我的问题...

如果我需要不属于默认的捆绑包,我的插件项目将如何访问这些捆绑包?我需要将它们与我的插件一起部署吗?我怎么知道用户的 Eclipse 是否已经拥有这些必需的捆绑包?

4

2 回答 2

1

你不太清楚你正在开发什么样的应用程序。在 Eclipse IDE 中作为插件运行 Web 服务器对我来说没有任何意义。这种服务器应用程序最好只运行在 Equinox 之上。

无论如何,正确的路径是创建一个“产品配置”文件并添加包含所需捆绑包的类别(转到文件/插件开发/产品配置)。

使用此文件,您可以运行产品实例(在 IDE 内)并可以导出它(创建一个包含所有需要的捆绑包的 zip)

如果你想让你的用户在他的 IDE 中安装插件,你必须创建一个 P2 存储库(使用目标定义文件)并在 Http 服务器中公开导出的目录。你可以研究 Tycho 以 maven 风格构建这种组件。

于 2013-05-10T18:37:09.293 回答
0

好吧,我不确定再次重新发明轮子是否真的足够了。您可以查看Pax-Web以获取有关如何执行此操作的灵感,或者查看Apache Karaf作为 OSGi-Container(使用 Pax-Web)。或者甚至更好地开始为两者之一做出贡献:-)

于 2013-05-10T06:36:50.150 回答