如何使用Bndtools OSGi项目创建动态Web项目。

时间:2014-12-24 13:06:11

标签: java osgi osgi-bundle bnd bndtools

我创建了一个生成.jar文件的BndTools OSGi项目。现在我想在我的主项目中使用该jar的BundleContext,即动态Web项目(.war文件)。 动态Web项目不包含bnd.bnd文件。因此我无法注入该jar的依赖项。

我有什么方法可以达到这个目的。

1 个答案:

答案 0 :(得分:2)

这可以通过两种方式实现。

快速而肮脏的方式

  1. 创建动态网络项目
  2. 右键单击Web项目>选择Properties菜单
  3. 点击Deployment Assembly
  4. 点击Add
  5. 为装配指令类型
  6. 选择Project
  7. 选择bndtools项目
  8. 重复第二个你想要的项目
  9. 将此Web项目部署到服务器或导出war并注意
  10. 的输出

    注意这个jar只会创建类,而不会创建通常由bnd.bnd文件创建的其他资源(例如正确的Manifest,其他包含的资源)

    更好更正确的方式

    1. 将bndtools创建的2个jar文件部署到某个工件存储库本地或公共
    2. 使用war包装创建一个新的maven项目(例如默认的Web项目原型)
    3. 将这两个bndtools项目jar指定为依赖项
    4. 从Eclipse的m2e-wtp安装updatesite插件(导入maven war项目并自动创建所有依赖项引用设置的eclipse动态Web项目)
    5. 使用文件>导入maven Web项目;导入>现有的maven项目
    6. 导入期间,将激活m2e-wtp项目配置程序,并正确设置包含2个bndproject jar作为依赖项的必要设置