【发布时间】:2012-05-20 23:49:25
【问题描述】:
今天有人问我在我们当前的 OSGi 应用程序中使用 Maven 是否是个好主意。我们使用了 Bndtools,它很棒,因为它使开发尽可能简单。 Bndtools 使用 OBR 来维护其他包和依赖解析,即使在应用程序运行期间也是如此。
由于 Maven 广泛传播并且如此受欢迎,大多数人也尝试在 OSGi 环境中使用它。对我来说,这是两种不同的方法。 OSGi 有自己的依赖声明,MANIFEST.MF 和 Maven 一个 pom,您可以在其中声明它们。所以如果你同时使用它们,你将声明依赖两次。当然,您可以使用 Apache OSGi Maven 插件来避免它,Maven 负责创建 MANIFEST.MF。但是 Maven 存储库并不真正关心捆绑包。因此,您可能会引用非捆绑 jar。
当然,使用 Maven 是有好处的,但是将它与 OSGi 或特别是与 Bndtools 结合起来真的是一件好事吗?
谁能提供优点或缺点!有人使用这两种方法的实际经验吗?
【问题讨论】:
-
嗨,克里斯蒂安。感谢您提出问题并使用 Bndtools。我知道 Maven 支持仍然有点缺乏,但我们目前正在积极努力。关于最佳方式的争论一直存在。当然,我们希望避免两次声明依赖项,因此 POM 将成为构建部门的“主”。无论如何,请继续关注邮件列表,因为我们将在 6 月初发布一些公告。也请继续提供您的反馈和建议。谢谢!
-
嗨,尼尔。谢谢回答我的问题。我在等你的消息;) Bndtools 太棒了,在我看来,我们不需要将 Maven 与 Bndtools 结合使用。该工具构建所有 jar 并创建 MANIFEST.MF,与 Maven 所做的相同,但我不需要在额外的 pom 文件中指定某些内容。您说如果我们同时使用两者,我们将声明依赖关系两次,这是绝对正确的。等不及你在 Bndtools 上的下一个版本了!!!谢谢!