管理OSS项目的依赖关系

时间:2010-07-05 19:16:34

标签: hibernate api open-source versioning

我是与Hibernate集成的Java开源项目的贡献者。我是开源领域的新手(作为贡献者),并且想了解如何管理依赖项。

在我们的项目中管理Hibernate代码库更改的最佳策略/方法是什么?

例如,在我们的代码深处嵌套是以下行:

ResultTransformer transformer = new PassThroughResultTransformer();

这里的默认构造函数会导致我们出现问题:

  • 在Hibernate 3.2.x中很好,
  • 在Hibernate 3.3.x中,它被标记为已弃用,并引入了静态成员: PassThroughResultTransformer.INSTANCE
  • 在Hibernate 3.4中,删除了默认构造函数。

有一个明确的分支,我们无法在同一个类中支持Hibernate 3.2和Hibernate 3.4。

在我们的代码库中管理此类问题的最佳方法是什么?

为每个Hibernate版本分配项目看起来像是一场噩梦,特别是在与我们自己的功能版本分层时。

1 个答案:

答案 0 :(得分:1)

您必须先决定要支持的版本。例如,如果你绝对想要支持3.2和3.4,那么你需要编写一些代码,这些代码在运行时可以通过反射来做正确的事情。

您将通过使用反射丢失编译时检查,但您将支持该库的两个版本。

或者你可以说“从版本X开始,我们只支持Hibernate 3.3及更高版本”。