我们正在Eclipse中编写一个JMS库,以便在我们的应用程序中使用。我们希望这可以与许多JMS提供商合作。
因此,我们围绕java接口构建代码,并根据需要创建特定于提供者的实现类。
当这样的项目中的构建依赖项发生了什么,当许多人在一个库上工作时,每个人都在某个特定提供者的实现类上?
假设我拥有WebSphere MQ并为该提供程序编写代码。另一个人为ActiveMQ写道。另一个是其他JMS提供商。我们是否应该在我们的构建路径上拥有相关的jar,或者我们是否应该接受为其他提供程序编写的代码的构建错误。
我们的一些想法是: - 将提供者的罐子包括在项目中, - 具有单独的构建ant任务,每个IDE /程序员一个, - 将提供者特定代码放在单独的项目/罐子中???
上述所有内容对我们来说都不是很完美。 有什么建议吗?
谢谢 tpav
答案 0 :(得分:0)
您提供了一个独立于提供程序定义的接口(或者在这种情况下,您使用JMS接口) - 您必须在工作区中使用此接口才能使项目可编译。在运行时,您需要一个提供者,并将其配置为将接口绑定到当前实现。
要实现此目的,您必须在工作区中使用JMS接口。对于特定的提供者,我建议使用单独的项目(每个提供者一个),可以根据需要添加执行。
我还建议看看OSGi(特别是服务和/或片段),因为它支持这种情况下需要的几个项目,但是,它有点陡峭(但可管理)的学习曲线。