java - 什么是合理的 OSGi 开发流程?

标签 java ant compilation osgi

我在工作中的最新项目中使用 OSGi,它在模块化和功能方面非常漂亮。

但我对开发工作流程不满意。最终,我计划有 30-50 个独立的包,排列在一个依赖图中——据推测,这就是 OSGi 的设计目的。但是我想不出一个干净的方法来在编译 时管理依赖关系。

示例:您有包 A 和 B。B 依赖于 A 中定义的包。每个包都作为单独的 Java 项目开发。

为了编译 B,A 必须在 javac 类路径上。

你:

  1. 在 B 的构建脚本中引用项目 A 的文件系统位置?
  2. 构建 A 并将 jar 放入 B 的 lib 目录?
  3. 依靠 Eclipse 的“引用项目”功能,并始终使用 Eclipse 的类路径来构建(呃)
  4. 对所有项目使用一个通用的“lib”目录,并在编译后将 bundle jar 转储到那里?
  5. 设置捆绑存储库,从构建脚本中解析 list 并从存储库中提取所需的 bundle ?

没有。 5 听起来最干净,但也像很多开销。

最佳答案

我的公司有 100 多个捆绑项目,我们使用 Eclipse 来管理依赖项。但是,我不推荐使用“必需插件”方法来管理依赖项。您最好的选择是创建插件项目。仅从您希望可见的每个项目中导出包。然后在导入端执行以下操作:

打开 list 编辑器

转到依赖项选项卡在左下方是一个名为“依赖项的自动化管理”的部分

添加当前插件依赖的所有插件

编写代码后,您可以单击该选项卡上的“添加依赖项”链接以自动计算导入的包。

如果您从 Eclipse 运行,这会在您执行时自动为您完成。

这种方法的好处是您构建的包仅使用 OSGi 定义的包导入/导出机制,而不是来自 Eclipse 的机制。

如果您想了解更多信息,我建议您访问该站点并订购本书。太棒了。

http://equinoxosgi.org/

关于java - 什么是合理的 OSGi 开发流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2768903/

相关文章:

java - Java 中不安全类的 NullPointerException

java - 未处理的异常如何影响 JVM?

java - 一个 int 值中的多个标志

java - WCF 身份验证服务 - 如何使用 Apache Axis 生成客户端?

java - 从 ant 更改 javac 路径

java - Ant 在 Eclipse 中没有按照我的预期工作

java - Eclipse 不与 ant 的 build.xml 所做的文件系统更改同步

compilation - P3DFFT 编译 - "Undefined reference"但库已链接

java - 如何将 .jar 文件添加到 .java 文件的编译中

android - 编译 FFMPEG + x264 - undefined reference