Управление зависимостями проектов OSS - PullRequest
1 голос
/ 05 июля 2010

Я участвую в проекте с открытым исходным кодом Java, который интегрируется с Hibernate. Я довольно новичок в сцене с открытым исходным кодом (как участник) и хотел бы посоветовать, как управлять зависимостями.

Каковы лучшие стратегии / подходы для управления изменениями в кодовой базе 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 Ответ

1 голос
/ 05 июля 2010

Вы должны решить, какие версии вы хотите поддерживать в первую очередь.Например, если вы абсолютно хотите поддерживать как 3.2, так и 3.4, вам нужно написать код, который во время выполнения будет делать правильные вещи, возможно, с помощью рефлексии.

Вы потеряете проверки во время компиляциииспользуя отражение, но вы будете поддерживать обе версии библиотеки.

Или вы можете сказать: «начиная с версии X, мы поддерживаем только Hibernate 3.3 и выше».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...