【问题标题】:Build Dependencies In Eclipse Java Library Project For Multiple Providers在 Eclipse Java 库项目中为多个提供者构建依赖关系
【发布时间】:2011-11-09 06:36:05
【问题描述】:

我们正在 Eclipse 中编写一个 JMS 库,以便在我们的应用程序中使用。最好,我们希望它可以与许多 JMS 提供程序一起使用。

所以我们围绕 java 接口构建我们的代码,并根据需要创建提供者特定的实现类。

当许多人在一个库上工作时,在这样的项目中构建依赖项会发生什么,每个人都在某个特定提供者的实现类上工作?

假设我有 WebSphere MQ 并为该提供程序编写代码。另一个人为 ActiveMQ 写作。另一个用于其他一些 JMS 提供程序。我们是否都应该在我们的构建路径上有相关的 jar,或者我们应该接受为其他提供者编写的代码存在构建错误。

我们的一些想法是: - 将供应商的 jar 包含在项目中, - 有单独的构建 ant 任务,每个 IDE/程序员一个, - 在单独的项目/jars 中有提供者特定的代码???

在我们看来,以上都不是完美的。 有什么建议吗?

谢谢 tpav

【问题讨论】:

    标签: java eclipse build dependencies


    【解决方案1】:

    您提供了一个独立于提供者定义的接口(或者在这种情况下您使用 JMS 接口) - 您必须在工作区中拥有此接口才能使您的项目可编译。在运行时,您需要提供并配置提供程序,以便将接口绑定到当前实现。

    要实现这一点,您必须在工作区中提供可用的 JMS 接口。对于特定的提供者,我建议使用单独的项目(每个提供者一个),可以根据需要添加执行。

    我还建议看看 OSGi(特别是服务和/或片段),因为它支持在这种情况下所需的几个项目,但是,它的学习曲线有点陡峭(但易于管理)。

    【讨论】:

    • 因此,如果我理解正确,在您的第二段中,您建议将提供程序特定的代码放在单独的项目/jar 中。这意味着有一个用于大部分代码的主 jar 和一个用于每个提供者的较小的 jar,不是吗?
    • 所以你不认为为每个 JMS 提供者都有一个单独的 jar 包,只为相关接口的 4-5 个提供者特定的类/实现而过分吗?
    • 我理解你的担心,但我认为,项目的数量并不重要,如果你相应地命名它,每个用户可能不看它就知道它的用途。另一方面,这种方法在部署过程中会有所帮助:您选择需要部署的内容,这很容易确定。所以我认为,尽管 jars/projects 的数量增加了,你的项目变得更易于维护。
    猜你喜欢
    • 2011-05-11
    • 2012-12-04
    • 2011-11-02
    • 2012-12-17
    • 2011-10-19
    • 2020-08-08
    • 1970-01-01
    • 2022-01-09
    • 2011-04-30
    相关资源
    最近更新 更多