有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从eclipse产品/发布配置导出WAB

在我的团队中,我们正在开发web应用程序的Java后端。我们使用OSGi
到目前为止,在最初的开发阶段,为了简化工作,我们使用Jetty作为servlet容器,为了部署到测试服务器,我们只需导出eclipse产品(所有产品捆绑在一起)并运行相应的服务。exe文件

为了模块化和解耦,我们使用OSGi。在这个特定的场景中,我们对动态安装/卸载捆绑包不感兴趣,因此eclipse产品将所有东西捆绑在一起并一次性部署它非常方便

现在我们想从码头转移到玻璃鱼,这意味着我们需要以不同的方式包装我们的包裹。据我所知,WAB对我们来说是正确的选择。例如,请参见:

Basically, [a WAB is] a web application with an OSGi bundle manifest. Thus, the whole web application can be deployed as a single OSGi bundle on any framework with WAB support. Technically, the bundle may be deployed as a web application to a Servlet container. But it gets access to a BundleContext. This allows the web application to inter-operate with other bundles or web applications running in the same framework.
https://stackoverflow.com/a/11345694/285091

理想情况下,我们想去我们的酒店。产品文件(或启动配置)并从那里导出WAB,因为我们已经有了所有必要的捆绑包以及相应的设置(autostart设置和启动级别)。然而,这似乎不可能——是吗

请注意,获取“根”捆绑包并仅仅打包它及其依赖项并不能完成这项工作,因为还有其他捆绑包不会按照该过程打包。例如,在我的工作区中,我有:

- com.example.root
- com.example.something
- com.example.something.impl.a
- com.example.something.impl.b

其中:

  • com.example.something是一个API捆绑包,包含两种实现:
    • com.example.something.impl.a
    • com.example.something.impl.b
  • com.example.root依赖于{},但不依赖于它的任何实现
  • 我们实际上运行com.example.something.impl.b,而不是com.example.something.impl.a

如果我们试图只打包root及其依赖项,我们将错过impl.b

因此,基本上:考虑到我们已经有了一个launch configuration/eclipse产品,其中包含了我们想要用于服务器端应用程序的确切捆绑包设置,有没有办法生成相应的WAB?如果没有任何直接的方法,并且假设我们不使用maven(它排除了maven-bundle-plugin),那么接下来最好的方法是什么


共 (0) 个答案