Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Eclipse Java库项目中为多个提供程序构建依赖项_Java_Eclipse_Build_Dependencies - Fatal编程技术网

在Eclipse Java库项目中为多个提供程序构建依赖项

在Eclipse Java库项目中为多个提供程序构建依赖项,java,eclipse,build,dependencies,Java,Eclipse,Build,Dependencies,我们正在Eclipse中编写一个JMS库,用于我们的应用程序。最好,我们希望它能与许多JMS提供者一起使用 因此,我们围绕java接口构建代码,并根据需要创建特定于提供者的实现类 在这样的项目中,当许多人在一个库上工作,每个人都在某个特定提供者的实现类上工作时,构建依赖关系会发生什么情况 假设我有WebSphereMQ,并为该提供者编写代码。另一个人为ActiveMQ写作。另一个用于其他JMS提供程序。我们都应该在构建路径上有相关的JAR,还是应该接受为其他提供者编写的代码存在构建错误 我们的一

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

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

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

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

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

以上这些在我们看来都不完美。 有什么建议吗

多谢各位
tpav

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

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


我还建议看一下OSGi,特别是服务和/或片段,因为它支持本例中所需的几个项目,但是,它的学习曲线有点陡峭,但可以管理。

因此,如果我理解正确,在您的第2段中,您建议将特定于提供商的代码放在单独的项目/JAR中。这意味着为大部分代码提供一个主jar,为每个提供程序提供一个较小的jar,不是吗?因此,您不认为为每个JMS提供程序提供一个单独的jar是过分的,只是为了相关接口的4-5个特定于提供程序的类/实现?我理解您的担忧,但我认为,项目的数量不太重要,就好像你给它起了相应的名字一样,每个用户可能都知道它是干什么用的,而不必仔细研究它。另一方面,这种方法在部署期间会有所帮助:您可以选择需要部署的内容,这很容易确定。因此,我认为,尽管JAR/项目的数量增加了,但是您的项目从中变得更易于维护。