代码之家  ›  专栏  ›  技术社区  ›  Marty Pitt

管理OSS项目的依赖关系

  •  1
  • Marty Pitt  · 技术社区  · 15 年前

    我是一个与Hibernate集成的Java开源项目的贡献者。我对开源场景还比较陌生(作为一个贡献者),我想知道如何管理依赖关系。

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

    例如,我们的代码中有以下几行:

    ResultTransformer transformer = new PassThroughResultTransformer();
    

    这里的默认构造函数会导致以下问题:

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

    有一个clear fork,我们无法在同一类中同时支持hibernate 3.2和hibernate 3.4。

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

    为Hibernate的每个版本分叉项目似乎是一场噩梦,尤其是在使用我们自己的功能版本进行分层时。

    1 回复  |  直到 15 年前
        1
  •  1
  •   vanza    15 年前

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

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

    或者您可以说“从版本X开始,我们只支持Hibernate3.3和更高版本”。

    推荐文章