【问题标题】:Managing dependencies of OSS projects管理OSS项目的依赖
【发布时间】:2010-07-05 19:16:34
【问题描述】:

我是一个与 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 版本分叉项目似乎是一场噩梦,尤其是在与我们自己的功能版本分层时。

【问题讨论】:

    标签: hibernate api open-source versioning


    【解决方案1】:

    您必须首先决定要支持的版本。例如,如果您绝对希望同时支持 3.2 和 3.4,则需要编写代码,以便在运行时做正确的事情,可能通过反射。

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

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

    【讨论】:

      猜你喜欢
      • 2011-10-04
      • 1970-01-01
      • 2012-10-19
      • 2013-06-22
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      相关资源
      最近更新 更多